将元数据添加到MIME多部分消息

时间:2014-08-14 11:08:18

标签: python email

我正在使用python发送电子邮件。目前我的技术是:

msg = email.mime.Multipart.MIMEMultipart()
msg["From"] = username
msg["To"] = recipient
msg["Subject"] = subject
mimeText = email.mime.Text.MIMEText(body, "html")
msg.attach(mimeText)

stringMsg = msg.as_string()

我还想在邮件中添加一些元数据 - 特别是电子邮件正在实现的任务的唯一标识符,以便稍后检查(可能是由不同的服务),我可以避免发送重复的电子邮件

此元数据不需要完全保密或安全,只是标准电子邮件客户端无法呈现的内容。显然,可以选择包含伪造的BCC电子邮件地址,其中包含id,或者向主体添加隐藏的html节点。

<div style="display:none;">123456789</div>

但是这两个看起来都很糟糕&#34; hacky&#34;是否有类似的内容会被保留并作为电子邮件的一部分发送,我可以稍后使用imaplib进行检查?

msg["secretMetadata"] = "123456789"

2 个答案:

答案 0 :(得分:2)

允许并在RFC822中解释用户定义的字段。基本上,您可以在自定义字段前加X-前缀,这不会与任何现有字段和扩展字段冲突。

所以像msg["X-secretMetadata"] = "123456789"这样的东西就足够了。

答案 1 :(得分:0)

听起来你可能想要使用X-header。电子邮件的X-header中的信息通常用于特定于应用程序的目的,并且邮件客户端通常不会显示此信息。