Not long ago Daniel Jalkut discovered that Dashboard calls home to Apple to check for widget updates. Today I discovered that Mail.app does the same thing.
Recently at my real work but not at home, Mail has been hanging for 30 seconds to a minute each time I tried to reply to an email. I would hit the Reply button and have time to make a cup of coffee in the kitchenette before the reply window appeared.
Luckily, the network administrator at the College, Tim Bell, has god-like tcpdump powers. He uncovered what was happening.
Each time I reply to a message, Mail attempts to contact an Apple server through port 80. That’s not a problem at home, but it is at work, where port 80 is blocked and a proxy redirects all HTTP traffic through another port. Mail didn’t respect my proxy settings. It carried on regardless with a process that eventually failed after lengthy delay.
Tim opened the port so that we could see what Mail was trying to do.
Mail was sending the following request based on my .Mac username to certinfo.mac.com (126.96.36.199):
GET /lookup?timgaden HTTP/1.1
In response, it was getting:
The third line in base64 decodes to G\x92\x06\x1777V\xd6W2 (where \x?? means the non-ascii character 92 (in hex), etc.) – so Tim tells me – and the fourth line to acceptance (with a trailing space).
Once we understood the problem, we could google for an answer. It turns out that Jonathan Wight experienced the same thing a year ago. He also provides a fix: delete the ~/Library/Preferences/com.apple.security.plist preferences file.
I’m not suggesting that anything nefarious or underhand is happening here, but it still puzzles me on three fronts.
First, what exactly is it checking and what is the undecipherable response? Is it checking my iChat certificate?
Secondly, why should Mail try to do this when I am replying to a message in my work account on my work server?
Thirdly, why is Mail so stupid? What design oversight makes it overlook my system-wide proxy settings and carry on banging away at port 80, giving me endless delays? Normally, Mail.app helps me to get things done, but not here.
UPDATE: MacGeekery has posted an interesting take on this, which is worth a read.
I hope I made it clear in my post above – although perhaps I didn’t – that I do not think Apple is stealing my credit card information or looking for cracked software or turning my computer into a drone for Apple press releases or doing anything else untoward.
I do think it is puzzling that my proxy settings were ignored and that Mail.app was thus unusable for up to a minute everytime I tried to reply to a message. I do think it is puzzling that the fix was so hard to find. I do think it is fair to expect better of Apple than this.
[Thanks for your help this afternoon, Tim. All my tcpdump are belong to you.]
- Long delays with Mail.app replies
- Posting .Mac mail when Port 25 is blocked
- Emailing from Starbucks: What port 587 is for
- Three outgoing mail fixes for Mac users on the go
- Four things that Mail.app can’t do
Tags: Apple Mail, bug, certificates, hanging, mail.app, port 80, proxy, reply, security, spinning beachball of death