Please elaborate. I have done many tests with the only variable change being PUSH on or off and the difference in battery life is measurable and provable. But I think you're saying it's how I have the Fetch settings within Push that's the problem? That's intriguing. Can you tell me how to properly set it up so that PUSH works as Apple designed it to but it doesn't drain my battery which I can tell you for sure it does now on iOS 5.1.1. :-(
Thanks in advance!
Lets start with difference between Push and Fetch and why each is available.
Push: Is a protocol where iOS leaves a single port open to a server. This open ports only job is to listen for a wake up packet saying "You have information that you need to retrieve". This is exactly how the Notification system currently works as well.
Fetch: Is a protocol where iOS is usually set on a timer to check for new information. This check is a full request that requires iOS to fully "wake up", connect to the server, get the data, parse it and then close the connection.
So if you have Fetch set for every 15 minutes, you are essentially waking up the phone 96 times a day to check for information that may or may not be there. Where as Push simply listens on a port until there is information that you actually need to get. Push also allows the phone to continue to sleep during its wait.
As you can see that is a huge difference in power requirements. So now to cover the why Fetch is sometimes needed.
Not all email servers have the newer Push protocol in place. Remember, Email has been around for well over 25 years, while smart phones are only about 5 years old. So for over 20 years, PCs were grabbing mail. Push wasn't needed. PCs had a fixed power draw and so they simply fetched every 1 minute if you wanted.
So with all of that in mind, you have to look at your email provider to see if they support Push versus Fetch. Hotmail and Gmail are the two big push providers. Gmail requires you to follow a really simple procedure to setup for Push and Hotmail is Push when you setup. If you have to use the POP server protocol to get your email, then you are stuck using Fetch at all times.
If you have a specific question about a particular email provider, ask away.