我最近有人(@ comcast.net)尝试给我发电子邮件(@ gmail.com和@ something.edu),包括在他们的电子邮件中包含3个文本文件和一个.docx文件。电子邮件从未到达我,他们从未收到任何退回邮件。我一次删除了一个附件,并确定其中一个文本文件导致了问题。检查文本文件,它似乎包含许多非ascii字符。我使用以下命令删除了所有打印ascii字符和换行符:
dcollins@laptop:~/Downloads$ tr -d "\012\015\040-\176" < filename.txt | od -x
0000000 e9e9 e9e9 e9e9 9595 9595 9595 9595 9595
0000020 9595 9595 9696 9797 9797 aeae aeae aeae
0000040 97ae 9797 9999 9999 9997
0000052
正如你所看到的,附件包含的几个实例0xe9
,0x95
,0x96
,0x97
0xae
,和0x99
。我的邮件程序不应该决定这个附件包含非ascii字符,base-64编码它,并使用MIME发送它?我注意到其他文本附件是作为传输的Content-Type: text/plain
,但由于我没有收到问题附件,我无法分辨我的客户使用它做了什么。这是我客户端或ISP的邮件服务器中的错误吗?
如果其他人试图通过电子邮件发送给您,那么发件人的邮件程序(而非您的邮件程序)必须对该文件进行MIME编码。
—
grawity 2012年