使用 Mandrill 为批量电子邮件设置 Message-Id
Posted
技术标签:
【中文标题】使用 Mandrill 为批量电子邮件设置 Message-Id【英文标题】:Set Message-Id with Mandrill for bulk emails 【发布时间】:2015-08-11 07:04:49 【问题描述】:我正在使用 Mandrill 基于模板向联系人列表发送电子邮件。我想跟踪联系人是否回复了我的电子邮件,为此,我想检查我发送的电子邮件的Message-Id
是否出现在新邮件的In-Reply-To
标头字段中。
问题是我必须手动生成和设置Message-Id
,因为 Mandrill 只给我他们内部的_id
。但是,由于我同时向多个联系人发送电子邮件,我将preserve_recipients
设置为false
。但是我只能设置一个Message-Id
,因此它将成为不是全局唯一的。
这是我发送的 JSON 示例:
"from_email": "itsme@email.com",
"from_name": "Its Me",
"headers": "Message-Id": ["<20150528161426.4265.93582@email.com>"],
"subject": "Thesubject",
"text": "Thebody",
"to": [
"email": "john@email.com",
"name": "John",
"type": "to"
,
"email": "patrick@email.com",
"name": "Patrick",
"type": "to"
],
"preserve_recipients": false
在这种情况下,将发送两条消息,但它们将具有相同的Message-Id
。如果我不设置它,Mandrill 会自动分配一个,但是我无法检索它。
知道我能做什么吗?也许我的整个方法都不正确......
【问题讨论】:
【参考方案1】:我最终遍历所有收件人并在每次迭代中生成一个新的Message-Id
,并一次发送一封电子邮件。可能不是最优的,因为我没有使用 Mandrill 批量功能,但至少现在我可以存储电子邮件 ID。
import email
import mandrill
mandrill_client = mandrill.Mandrill('YOUR_MANDRILL_KEY')
for recipient in recipients:
# Generate RFC 2822-compliant Message-ID header
message_id = email.Utils.make_msgid()
m =
"headers": "Message-Id": [message_id],
"from_email": "itsme@email.com",
"from_name": "Its Me",
"subject": "The subject",
"text": "The body",
"to": ["email": recipient["email"],
"name": recipient["name"],
"type": "to"],
"track_clicks": True,
"track_opens": True
result = mandrill_client.messages.send(message=m)
【讨论】:
您能否发布您的make_msgid()
函数或详细说明您是如何创建消息ID 的?我在文档中找不到它的格式
当然。它是使用 Python 的内置 email
库,更具体地说是 utils.make_msgid()
函数创建的,该函数创建符合 RFC 2822 的 Message-ID 标头。
有道理。谢谢。【参考方案2】:
从mandrill documentation,您可以从消息的返回值中检索_id。
【讨论】:
我知道,但此信息仅在 Mandrill 内部,当我收到电子邮件回复时会丢失。 然后使用 webhook,我将它们用于我的邮件系统,它们工作得很好 山魈支持似乎有一个有用的答案:***.com/a/29010839/4940233 我正在使用 webhook 获取 sent、open 和 clicked 状态,但是没有 回复事件,对吧?是的,我使用 Mandrill 支持答案来设置Message-Id
标头字段,但在批量电子邮件的情况下,将为所有邮件设置一个 id,这不是一个好主意...
您可以使用入站电子邮件 webhook mandrill.zendesk.com/hc/en-us/articles/…以上是关于使用 Mandrill 为批量电子邮件设置 Message-Id的主要内容,如果未能解决你的问题,请参考以下文章
使用 djrill 发送 html 批量电子邮件时,如何获得每条消息的 mandrill 响应?
如何使用 mandrill 发送 mailchimp 模板?
将 Mandrill 帐户合并到 Mailchimp 后,如果我的发送域未设置为接收电子邮件,我该如何接受验证电子邮件?