superclay

Q: Temp fix for iOS 6 not pushing Exchange mail

All,

 

If you are reading this, you are probable having the same problem as I am:

 

After you switched to the iPhone 5, Exchange mail is no longer PUSHing to your device.  I have done testing and this problem affects:

 

1) iPhone 5's running connecting to Exchange 2007 or Exchange 2010 servers.

 

This does not effect:

 

1) my iPhone 4S running iOS 6 Beta 6.0 10A5376e

 

Troubleshooting:

 

1) Wiped phone and started with completely fresh iOS 6 on my iPhone 5. The only thing I did was add my exchange account.

-Still had same issue.

 

** How to fix this issue:

 

1. Go to Mail, Contacts, and Calendar.  Click "Fetch New Data".  Make sure push is on. 

2.  Go back to Mail, Contact, and Calendar.  Click on your exchange account. Click on "Days to Sync".  Even if it is set to what you want this on, chance it to a different setting (i.e. 1 week).  You can change this back later, but this is the only way to fix it.

3. Go back to Mail COntact and Calendar.  Click on "Show".  No matter what this setting is on, change it to a different setting. (i.e. 100 recent messages).

4.  Reboot your iPhone 5

5.  Exchange PUSH will be working now.

 

Thanks,

 

Clay

iPhone 5, iOS 6

Posted on Sep 24, 2012 5:46 AM

Close

Q: Temp fix for iOS 6 not pushing Exchange mail

  • All replies
  • Helpful answers

first Previous Page 6 of 62 last Next
  • by DQMIA,

    DQMIA DQMIA Sep 27, 2012 6:30 AM in response to Frank Malloy
    Level 1 (0 points)
    Sep 27, 2012 6:30 AM in response to Frank Malloy

    It is a workaround.  But it means you have to go to your icloud mailbox on the phone to view messages and send from that same mailbox as your corporate email address.  For me, this is not a workaround, (and as Frank states, something I do not allow our employees to do) its unacceptable.  For now, I'm just using fetch every 15 minutes.  As of this writing this post has about 4200 views so hopefully this will catch Apple's attention.  I have also seen similiar posting about this issue on macrumors.com and Verizon forums.

     

    Hanishi:  When you say it does not initiate a ping request to the server; are you talking about the mail app itself or some other daemon such as apsd, for example?

     

    Oh PUSH, how I miss you. 

  • by hanishi,

    hanishi hanishi Sep 27, 2012 6:40 AM in response to DQMIA
    Level 1 (0 points)
    Sep 27, 2012 6:40 AM in response to DQMIA

    It is Microsoft ActiveSync Protocol, believe me. With my open source server project, you can actually see how iOS devices communicate with MS Exchange.

    It is very useful if you don't own MS Exchange Server, but still want to use MDM features provided by MS Exchange Server.

  • by superclay,

    superclay superclay Sep 27, 2012 6:41 AM in response to hanishi
    Level 1 (0 points)
    Sep 27, 2012 6:41 AM in response to hanishi

    If its the protocol, why does it work fine on iPhone 4 and 4s using the exact same OS?  Is the protocol hardware specific?  Not dis-agreeing, just asking.

  • by hanishi,

    hanishi hanishi Sep 27, 2012 6:45 AM in response to superclay
    Level 1 (0 points)
    Sep 27, 2012 6:45 AM in response to superclay

    Did it work with iPhone 4/4s with iOS6? I've only tested with iPod upgraded to iOS6. My server project works upto iOS 5.x.x just fine.

  • by superclay,

    superclay superclay Sep 27, 2012 6:50 AM in response to hanishi
    Level 1 (0 points)
    Sep 27, 2012 6:50 AM in response to hanishi

    Yes, PUSH worked great on iPhone 4s and 4 with iOS 6.  I went through every beta and the GM and had PUSH going the whole time.  Never had a single issue.  Until I upgraded to the iPhone 5.

  • by sbenitez,

    sbenitez sbenitez Sep 27, 2012 7:00 AM in response to superclay
    Level 1 (0 points)
    Sep 27, 2012 7:00 AM in response to superclay

    The protocol is not hardware specific, but the implementation of iOS6, and therefore the implementation of the protocol, may be.

     

    Having said this, I don't think the implementation of the protocol in iOS6 for iPhone 5 is neccessarily incorrect; it may be buggy, but not "incorrect". I say this because messages are successfuly pushed for the first 15 minutes or so after resetting settings or restarting the phone. This means that the iPhone must have had a HTTP connection open for this period of time.

     

    I don't know the details of the ActiveSync protocol, but I am very familiar with HTTP long-polling. I imagine, as in long-polling, that the connection needs to be reestablished after a period of time due to a time-out. This could be the issue: the connection is not being reestablished after a time-out and we lose push support.

     

    However, the HTTP long-poll is being reestabled after a push is received; therefore, I hypothesize that the iPhone is not restablishing a long-poll after a timout, but is in fact doing it after the connection is closed from a push response from the server.

     

    A way to test my theory would be to continuously send yourself messages for ~30 minutes. If all the messages are pushed, then wait ~30 minutes and send yourself one more message. If that message is not pushed, then my theory is correct. Otherwise, I'm wrong. Anyone want to give that a try?

     

    If you decide to conduct the test I propose above, you should have fetch set to manual, of course, so that the phone doesn't fetch.

  • by hanishi,

    hanishi hanishi Sep 27, 2012 6:56 AM in response to sbenitez
    Level 1 (0 points)
    Sep 27, 2012 6:56 AM in response to sbenitez

    Are you sure, that's "PUSH"ed? because it fetches every 15/30 minutes or whatever the inverval that is set in the device settings.

  • by sbenitez,

    sbenitez sbenitez Sep 27, 2012 6:59 AM in response to hanishi
    Level 1 (0 points)
    Sep 27, 2012 6:59 AM in response to hanishi

    What do you mean? Are you asking if I am sure that the the emails are being pushed to the iPhone for the first ~15 minutes after resetting settings or restarting the iPhone? If this is what you're asking, then yes, I am sure. I have tested this myself, and you can too, by sending yourself a message every minute or so and hearing the phone go 'ding!'. If the email was not being pushed, we would have to wait the 15 minutes or so to get the message.

     

    Furthermore, I have fetch set to manual. If you decide to conduct the test I propose above, you should have fetch set to manual, too.

  • by DQMIA,

    DQMIA DQMIA Sep 27, 2012 6:59 AM in response to sbenitez
    Level 1 (0 points)
    Sep 27, 2012 6:59 AM in response to sbenitez

    I've given up on troubleshooting/fixing this mess.  I just switched to fetch for now.  Whatever the problem is, Apple needs to fix it and fast.  In response to Superclay and Hanishi, PUSH works flawlessly on my 4S and iPad 2 with IOS 6 so obviously this particular issue is isolated only to iphone 5's.

  • by sbenitez,

    sbenitez sbenitez Sep 27, 2012 7:01 AM in response to DQMIA
    Level 1 (0 points)
    Sep 27, 2012 7:01 AM in response to DQMIA

    While I agree with you that this is Apple's problem to solve, there is nothing preventing us from helping them find and isolate the issue. This way, we might be able to get a faster fix out.

  • by DQMIA,

    DQMIA DQMIA Sep 27, 2012 7:10 AM in response to sbenitez
    Level 1 (0 points)
    Sep 27, 2012 7:10 AM in response to sbenitez

    Absolutely agree with you.  But all I can say right now is...good luck.  I'm really just venting more than anything else out of frustration that I cannot understand how Apple didn't test this before deploying to the masses and correct it.  Such a critical feature.  Also, according to Frank every IOS release/upgrade has broken PUSH in some way shape or form in the past.  Perform your test, but my findings show that you can go crazy sending yourself messages when push is working (after a reboot for example) but that it will eventually stop, even if you continue to send yourself messages.

  • by hanishi,

    hanishi hanishi Sep 27, 2012 7:13 AM in response to DQMIA
    Level 1 (0 points)
    Sep 27, 2012 7:13 AM in response to DQMIA

    sbenitez, If you want to try it out. Here. you can  test the "PUSH"

     

    http://182.48.51.164:8080/iOSController/iOSController.html

     

    user: inventit

    password: Zdr58H4e

  • by sbenitez,

    sbenitez sbenitez Sep 27, 2012 7:18 AM in response to DQMIA
    Level 1 (0 points)
    Sep 27, 2012 7:18 AM in response to DQMIA

    I completely sympathize with you. I depend on push as much as it seems that you do, and I was extremely frustrated to find that it didn't work on my iPhone 5 but worked perfectly on my old Epic 4g, and I have even contemplated returning the device until this issue is fixed.

     

    However, if what you're saying is true, that even if you continously send yourself without a long pause between the messages and push stops working, then I'm wrong. However, if I'm not wrong, then we've identified what is mostly likely the primary issue and the fix should be fairly straightforward.

     

    hanishi: I'm not sure how to use your tool. However, if you have infrastructure setup to monitor push on your iOS device, then you should be able to create a script that tests this easily. Simply have the script send the device an email every 30 seconds or so for 20 minutes. Then pause for 20 minutes. Then send more test messages. On the device side, record what you've received. If you find that you receive all of the message in the first batch and none of the messages in the second, then we've identified the issue.

  • by hanishi,

    hanishi hanishi Sep 27, 2012 7:36 AM in response to sbenitez
    Level 1 (0 points)
    Sep 27, 2012 7:36 AM in response to sbenitez

    Here is what is communicated between Excahnge and iOS device, for instance. And as long as there is no <PING> command initiated from the device side,  no PUSH is possible. I only see "Fetching" as aforementioned.

    <?xml version="1.0" encoding="UTF-8"?>

    <Settings>

      <UserInformation>

        <Get />

      </UserInformation>

      <DeviceInformaton>

        <Set>

          <Model>iPod4C1</Model>

          <UserAgent>iOS/6.0 (10A403) dataaccessd/1.0</UserAgent>

          <OS>iOS 6.0 10A403</OS>

          <OSLanguage>ja</OSLanguage>

          <FriendlyName>ホワイ??iPod touch</FriendlyName>

        </Set>

      </DeviceInformaton>

    </Settings>

     

     

    2012-09-27 23:01:22,711 [DEBUG][org.eclipse.jetty.util.log] to device:

    <?xml version="1.0" encoding="UTF-8"?>

    <Settings>

      <UserInformation>

        <Get>

          <Accounts>

            <Account>

              <EmailAddresses>

                <SMTPAddress>hanishi@169.254.56.241:8080</SMTPAddress>

              </EmailAddresses>

            </Account>

          </Accounts>

        </Get>

        <Status>1</Status>

      </UserInformation>

      <DeviceInformaton>

        <Set>

          <Model>iPod4C1</Model>

          <UserAgent>iOS/6.0 (10A403) dataaccessd/1.0</UserAgent>

          <OS>iOS 6.0 10A403</OS>

          <OSLanguage>ja</OSLanguage>

          <FriendlyName>ホワイ??iPod touch</FriendlyName>

        </Set>

      </DeviceInformaton>

      <Status>1</Status>

    </Settings>

     

    Here is how you use the tool:

    In Excahnge settings, set the properties as follows:

    username: <anything>

    password: <anything>

    server: 182.48.51.164:8080

    and disable SSL

     

    The password and user name must match the ones you added to the list.

  • by sbenitez,

    sbenitez sbenitez Sep 27, 2012 7:43 AM in response to hanishi
    Level 1 (0 points)
    Sep 27, 2012 7:43 AM in response to hanishi

    How are you logging this? Do you have an Exchange server set up that your device is talking to?

     

    Also, this seems to be the iPhone requesting user information via the Settings command and nothing else.

     

    <UserInformation>

        <Get />

    </UserInformation>

     

    I've just now read through the relevant parts of the ActiveSync protocol, and I believe that my theory has merit based on this section of the protocol command's reference:

     

    The server does not immediately issue a response to the client's Ping request (section 2.2.2.11.1). Instead, the server waits until one of two events occur: either the time-out that is specified by the client elapses, or changes occur in one of the folders that the client specifies. The response that the server issues indicates which of these events has happened so that the client can react appropriately.

     

    I believe that the iPhone is sending a Ping command initially, and after a successful return from the Exchange server, but not when a time-out occurs. Do you see an initial Ping command in your logs?

first Previous Page 6 of 62 last Next