最近有人 (@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 邮件服务器中的错误吗?
答案1
下载一个免费的电子邮件客户端,然后使用该客户端重新发送附件。如果仍然失败,则问题出在您的 ISP 身上。如果成功发送,则问题出在您的邮件客户端身上。
答案2
我编写过一两个邮件客户端,其中可能存在 bug。
但是,没有证据表明文本文件本身没有损坏。
让您的同事将文本复制并粘贴到新文档中,然后将其发送给您,看看问题是否再次出现。让他将文件保存为 ASCII 和 Unicode,看看这是否是问题的原因。