Update: Turns out the reason Mail.app was downloading everything was due to to an malfunctioning plugin (JunkMatcher). Uninstalling this fixed it all, thankfully! If, like me, you occasionally have to use a low bandwidth connection such as GPRS, you’ll realise how painful checking e-mail can be with Apple’s Mail.app. You see, Mail.app’s default setting is to download everything including headers, bodies and attachments — spam and all — which results in an exceptional amount of bandwidth, especially if you’ve got a few IMAP e-mail accounts along with friends that haven’t learnt how to resize their digital photos or who continually forward you megabyte upon megabyte of joke circulars.Luckily, however, there is hope!A good few years ago every e-mail program worth its salt had the option of downloading e-mail “headers only”, basically the subject line, to, from, date and a few other pieces of vital information. This allowed you to scan the sender & subject then choose what to receive before committing to the lengthy procedure of pulling down a few hundred KB on your fancy shiny new 2400 baud modem. Now, thankfully, those times are mostly gone, but with the advent of data over mobile phones with limited network support (no 3G UMTS or HSDPA high speed luxury, just plain old GPRS) the painful wait occasionally returns. Of course, I could go on about how you lucky you have it — try using e-mail over packet radio for a week and you’ll be grateful — but instead I’ll offer up some ways for Mac OS X’s Mail program users to make things “snappy”. Here’s what you need:
For POP accounts
- Go into Mail’s Preferences, then go to the Accounts tab.
- For each POP account you have, go to its Advanced tab and change the “Prompt me to skip messages over XX KB” value to something that’s acceptable for your connection, such as 50KB.
- Exit the Preferences window and save the modified account when prompted.This isn’t quite “headers only” but it’s good enough, you can adjust the value to suit depending on how much or little throughput you have, and in theory you could set it to 0KB and receive a prompt for every message. (Though I’ve not tried this.)
For IMAP accounts
- Go into Mail’s Preferences, then go to the Accounts tab.
- For each IMAP account you have, go to its Advanced tab and change “Keep copies of messages for offline viewing:” to either Only messages I’ve read or Don’t keep copies of any messages.
- It’ll give you a warning saying the following, “You will be unable to search the entire text of messages in this account, and junk mail in this account will not be detected. Are you sure you want to change to (whichever option you chose)?” Accept this, then exit the Preferences window, saving the account as you do so. Point 3 is worth paying some heed to, as you’ll only be downloading the e-mail headers with this setup Mail.app’s junk filter won’t work fully.
Hopefully you’ve got some sort of server-side spam marking system set up — for example, if your mailserver has SpamAssassin running, these messages should still be correctly auto-classified as spam (SpamAssassin writes an extra header that indicates the mail’s spam status).Another handy tip is to use the Activity Window to see exactly what Mail.app gets up to: go to “Window, Activity Viewer” or use the Command+0 shortcut. For instance, should you accidentally start downloading an e-mail with a large attachment, this window should allow you to cancel it. Just click on the red stop sign next to the operation you’d like to abort.Now you should be all set for some low bandwidth action!
A little late, but I just found this when looking for some configuration information.
Any idea how to bulk-delete ALL mail that’s already been downloaded?
Nevermind – looks like mail.app did that automatically.
Hi Miles. I’m assuming you mean off the server once you’ve downloaded? If so, you can do it if you’re using mail.app and a POP account (as, by it’s very nature, IMAP won’t do this) by doing the following:
Under the Accounts tab, select the POP account in the left-hand pane.
In the right-hand pane, Go the the Advanced tab.
Click the “Remove Now” button.
That should bulk-delete all the mail you’ve already downloaded. Hope that helps?
Just saw your second comment after posting mine :) It’s sometimes worth keeping an eye on the Activity window (Window, Activity or cmd+0) to see what mail.app’s doing in more detail. Note that this is different from the ‘Mail Activity’ pane in Leopard’s mail.app ? the former shows significantly more information.
Actually, I was talking IMAP. I was assuming that it wasn’t saving messages, but as you noted, the default now seem to be to download everything.
I set it to “don’t keep copies of anything” and it looks like it deleted all the accumulated stuff in ../Library/Mail/.. – automagically. So, problem solved.
(Context: I run a mail server, keep all my mail on it, and access from multiple machines. I usually use Thunderbird, but occasionally use Mail.app – and discovered by accident (virus alert) that it was storing gigabytes of stuff on my laptop. Not what I intended.
Problem now solved.
Just saw your latest comment – that’s useful. Thanks!
Good stuff, glad you’re sorted!
I recently started using imap with mail 3.5, and noticed a huge spike in bandwidth. I don’t know if it is work place download related or imap that is causing it.
I had mail set yo check every 3 minutes and i was storing all offline, but the amount of mail lwasn’t huge really. perhaps i got 1000 spam a day, and this was dleted afte a day.
Could mail.app be churning through gigabytes of data per day?
Hi Tim. Hmm, no, mail.app shouldn’t be using anywhere near that amount of bandwidth ? unless those thousand spams all have 1MB attachments!
Where are you seeing the spike in bandwidth? Does your ISP have a online bandwidth usage meter, is it on your router, or are you seeing it directly on your Mac?
If it’s via your ISP or router, investigate what’s going on on your network. If you run Wi-Fi and it’s open, secure it (and secure it well: use WPA at least). If you share your network with others, check what they’re doing: if they running P2P clients, such as BitTorrent, Limewire, etc. then that’ll easily account for a few GB per day. Ask them to set limits on their use via the software ? most can set a schedule where they’ll only upload and download a set KB per second ? or investigate routers that can traffic shape.
If it’s just your machine, I’d use some tools to narrow it down. Little Snitch’s bandwidth monitor will tell you which apps are currently active and provides a small graph for each ? it’s not perfect, as it doesn’t give detailed stats, but it’ll do. Combine this with Activity Monitor’s bandwidth graph or a utility like MenuMeters and it should soon become apparent if there’s a problem app.
If mail.app is the problem? well, it’s unlikely, but if it is, try using the Activity window (Window, Activity or cmd+0) to see what the application’s doing in more detail ? perhaps this may show something that’s eating all the bandwidth. Oh, I’d also check if you have any third-party plugins installed in Your-user/Library/Mail/Bundles, as this was what this issue was with this particular post in the first place.
Anyway, I hope that helps. Do let me know how you get on, or if you need any more ideas of what it could be.
Thanks for your generous and detailed response Stef. I will do as suggested and monitor as we go.
The only Internet I can get at my Silicon Valley home is 3G wireless (The US has become an Internet 3rd World Country) and I was hitting the 5GB limit in 5 days. Looks like the main reason was Mail.app / GMail IMAP.
Your tip helped me eliminate that bandwidth hog.
I set the Keep Copies for offline viewing to “Only messages I’ve read”
I also had to enable “Use IDLE command” and disable “Include when automatically checking for new messages” to really quiet the Mail.app/GMAIL IMAP combo.
Glad it helped, Rob :)