重新发送 MIME 电子邮件中的标头

Posted

技术标签:

【中文标题】重新发送 MIME 电子邮件中的标头【英文标题】:Resent headers in MIME email 【发布时间】:2014-07-19 10:18:24 【问题描述】:

我想了解更多关于附加到电子邮件标题中的重新发送标题(重新发送发件人、重新发送到、重新发送日期等)。 什么时候添加这些标题?它们是由服务器还是邮件客户端程序添加的?

我需要使用 JavaMail api 编写一个 Java 程序来转发电子邮件(不更改或解析它的原始内容)。我希望电子邮件在到达特定收件人的服务器时被重定向到目标电子邮件地址。 任何可以使用重新发送的标头转发/重定向 mime 邮件的 sn-p 都会有所帮助。

谢谢

【问题讨论】:

【参考方案1】:

请参阅RFC 2822 的第 3.6.6 节。

您应该能够使用 JavaMail 将这些标题添加到邮件中。如果邮件是从邮件服务器上的文件夹中读取的,则需要先复制邮件,然后才能对其进行更改。使用MimeMessage copy constructor。然后,您可以使用带有地址数组的Transport.send method 将其发送到您想要的任何地址,忽略消息中的地址。如果您需要保留原始 Message-ID(由于您正在修改消息,这可能不合适),您需要继承 MimeMessage 并覆盖 updateHeaders 方法。

【讨论】:

如果我添加重新发送的标头,然后使用 Transport.send 函数发送邮件,JavaMail 会做什么?从“Resent-From”用户向“Resent-To”用户发送电子邮件?或者,它是否会以常规方式发送(即从“发件人”用户发送给“收件人”用户)。重新发送的标头扮演什么角色?它们仅用于信息/显示目的,还是在传递消息时使用? 如果您使用接收地址列表的发送方法,它将只发送到这些地址,而忽略消息中的任何标题。

以上是关于重新发送 MIME 电子邮件中的标头的主要内容,如果未能解决你的问题,请参考以下文章

Gmail API 游乐场:发送方法,转换后的 MIME 原始标头在发送时未填充电子邮件字段

通过 LotusScript 发送的 MIME 消息中的多个 To 和 Cc 标头

使用编码字的 MIME 标头中的换行符是不是合法?

带有 MIME 版本的 php 电子邮件标头:1.0

由于某些电子邮件,InternetAddress Parse 在 Mime 标头上失败

Python-解析电子邮件正文并截断 MIME 标头