I discovered a problem in some email processing code recently. Circlebox has an email forwarding service where an end user can send an email to an address like firstname.lastname@example.org and that message is then sent to each group member’s email address according to their subscription preferences.
A user was sending a message with an attachment from a Hotmail address but the attachment wasn’t being forwarded to the end users. It turned out to be a difference in the headers.
Here are the relevant headers from a message sent from an Exchange Server.
creation-date=”Sun, 23 Feb 2014 13:58:23 GMT”;
modification-date=”Sun, 23 Feb 2014 13:58:23 GMT”
Here are the relevant headers from an identical message sent from Hotmail:
Content-Disposition: attachment; filename=”Directory.xls”
My code was expecting the Content-Type header to have a Name parameter that contained the attachment filename. As you can see, this is in the first set of headers, but not in the second one.
This seems to be the direction things are heading in. RFC 2183 defines this and it looks like most mail servers are currently using both the Name parameter of the Content-Type header and the Filename parameter of the Content-Disposition header, but Hotmail is only using Content-Disposition.