我的任务是每周一到周五以编程方式创建一份报告并将其作为附件通过电子邮件发送。这项工作相当容易完成,但有一个小问题尚未解决。预期的收件人(另一家公司)收到了电子邮件,但没有收到附件。附件在内部传送正常。它可以正常传送到第三方电子邮件服务,如 Gmail 和 AOL 邮件(不要笑)。但是,无论我怎么尝试,它都不会传送给预期的收件人。
自动脚本是用 Python 3.2 编写的,并使用我们本地的 Exchange 2007 服务器作为 SMTP 服务器。该消息是使用 Python 的“电子邮件”库创建的,应该符合 MIME 标准(使用 Python 中的 MIME 类型)。收件人有一台 Exchange 2003 服务器,我们俩都有 Barracuda 垃圾邮件过滤器。附件似乎没有从我们的垃圾邮件过滤器中删除,我与另一家公司的 IT 联系人没有看到它到达他们的公司。可能发生了什么?
PS:通过研究,我无法找到重复的问题,有些问题类似,但没有一个完全相同。
答案1
在处理 MIME 方面,Exch2k3 和 Exch2k7/10 之间存在一些不兼容性。我从 Exch2k3 -> Exch2k7 亲眼目睹了这种情况,邮件到达但 Outlook 无法“看到”附件。如果您在邮件到达目标网关时查看邮件大小,邮件似乎包含附件。
我还没有看到 Exch2k7 -> Exch2k3 出现这种情况。该问题仅在发送 RTF 格式的消息时发生(HTML 和纯文本都可以)。我刚刚尝试查找 MS KB 文章,但只找到 Exch 5.5 匹配项。在研究这个问题时,发现根本问题是 Exch2k7 对 MIME 的处理完全符合 RFC 标准,这表明 Exch2k3 在实施过程中存在一些松懈。Exch2k7 端有一个解决方法,也就是说,让它更松懈。但是,我选择了“废除 RTF”路线。
您能确认您的消息格式吗?
答案2
问题原来是发送的电子邮件中有一些奇怪的标题问题。这仍然令人困惑,但按照这里我能够让电子邮件发送给他们。在此更改之前,电子邮件可以毫无问题地显示在第三方电子邮件提供商(例如 Gmail)上,但无法发送给需要它们的公司。