Email Attachment Sizes - Why Does My Email Bounce?
We often get questions about the sending of email attachments and why messages--be they from one of our users or to them--get rejected due to size. The most common question being, "If the size limit is X and my attachment is less-than-X, why did it get rejected?"
There are two things that explain this:
There is a difference between text data and binary data.
The email protocol is really, really old (from a technology perspective).
When I refer to text data, I'm referring to a type of data called ASCII. ASCII is the standard set of letters, numbers and some (not all) symbols. The ASCII character set can be represented in computer language using numbers from 0 to 127 (why this is the case is beyond the scope of this article). However, binary data is represented by numbers from 0-255.
This is an important distinction in how data is organized. The standardized email protocol that all email servers understand is the Simple Mail Transfer Protocol, or SMTP. This protocol was originally text-only--there were no attachments (even a text attachment is considered binary just by nature of being an attachment to the email). This also made email incompatible with some foreign character sets (Asian character sets for example require binary transmission, as they are outside the ASCII character set).
So now you have a conundrum: How can you get binary data (that is represented by numeric values from 0 to 255) to transmit over a medium that only understands values from 0 to 127?
The answer is to encode the binary data and represent it as text.
For this example, here is a picture of a bunny with a pancake on his head. His name is Oolong (or was; he died in 2003):
Oolong was--by all accounts--a Very Good Boy.
This image is 12.17 Kilobytes (or 12,170 bytes).
If I take this image and convert it into text using base64 encoding (which is what email programs use), it looks like this:
This is just a sample; there's three pages of this gibberish!
Now by encoding it, the size increased. I used a website to do the encoding:
As you can see above, it lists the Filesize as 12.17KB, but the size after being encoded is 16.23 KB. That's about a 33% increase in size. It may not look like a lot when the file is teeny like this one, but 33% on a file that's 10MB, 15MB, 20MB, etc is another matter. Also, exactly how much the size increases will depend on a number of technical factors, and this will happen for *each* file you attach. Keep this in mind when a user tells you they have a 15MB limit on their server. It doesn't mean you can send them a 15MB attachment, it means you can send them 15MB worth of data. That may mean you can only send them around a 12MB attachment.
It's also worth noting that it means 15MB of data. The content of your email counts towards this limit as well. If you embedded a photo, or are forwarding an email with a long chain (that may have images in it as well), then that also adds on to the size of the email you're sending on top of any files you may attach.
The "simple" solution is *not* to use email to send large files (especially to other users in our company; just save the file somewhere like the S: drive and tell the user where it is, or get with IT to securely deliver it to them). I use the term "large" in relation to email, as well. 5MB isn't a big file, but when you're sending it over a protocol that really hasn't changed since the early 80s (when 1MB was a lot) then it is large--that's why if you sort emails in Outlook by size it considers 5MB-10MB to be "Very Large."
If it's more than 3 or 4MB it may be better for everyone involved to use a service like Dropbox to send them a link. One service I've used quite a bit personally is www.hightail.com. It's a free service for the most part (sending files over 100MB requires a paid account) and is pretty simple to use: you just type in the email address of your recipient, type a subject and a message, then drag the file you want to send over to the window. Your recipient will then receive a link to download the file. There are also options requiring a code to download (that you'd send via direct email), for having the download link expire after 7 days, and even get a notification when the recipient has downloaded the file.
Hopefully this helps folks understand a little bit about how these file size limitations work (and why).