在MIME多部分消息中添加元数据
我正在用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)邮箱地址,里面放这个标识符,或者在邮件正文中添加一个隐藏的HTML节点。
<div style="display:none;">123456789</div>
但这两种方法看起来都挺“黑科技”的。有没有什么方法可以把这些信息保留并作为邮件的一部分发送出去,以便我可以稍后用imaplib
来检查?
msg["secretMetadata"] = "123456789"
2 个回答
0
听起来你可能想用X-头信息。电子邮件中的X-头信息通常是为了特定应用的目的而使用的,这些信息通常不会被邮件客户端显示出来。
2
用户自定义字段是被允许的,具体说明可以在RFC822中找到。简单来说,你可以在自己的字段前面加上X-
,这样就不会和已有的字段或者扩展字段冲突。
所以,像msg["X-secretMetadata"] = "123456789"
这样的写法就可以了。