在MIME多部分消息中添加元数据

0 投票
2 回答
1108 浏览
提问于 2025-04-18 17:16

我正在用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"这样的写法就可以了。

撰写回答