使用Mandrill为批量电子邮件设置Message-Id

时间:2015-05-28 16:28:56

标签: mandrill

我使用Mandrill基于模板向联系人列表发送电子邮件。我想跟踪联系人是否已回复我的电子邮件,为此,我想检查我发送的电子邮件的TypeError: Cannot read property '$setPristine' of undefined 是否出现在新邮件的Message-Id标题字段中。< / p>

问题是我必须手动生成并设置In-Reply-To,因为Mandrill只给我内部Message-Id。但是,由于我同时向各个联系人发送电子邮件,因此我将_id设置为preserve_recipients。但是,我只能设置一个false,因此不会全局唯一

以下是我发送的JSON示例:

Message-Id

}

在这种情况下,将发送两条消息,但它们将具有相同的{ "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 。如果我没有设置它,Mandrill会自动分配一个,但我无法检索它。

知道我能做什么吗?也许我的整个方法都不正确......

2 个答案:

答案 0 :(得分:3)

我最终循环遍历所有收件人,并在每次迭代时生成一个新的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)

答案 1 :(得分:0)

mandrill documentation,您可以从邮件的返回值中检索_id。

doc