【问题标题】:Set Message-Id with Mandrill for bulk emails使用 Mandrill 为批量电子邮件设置 Message-Id
【发布时间】: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 会自动分配一个,但是我无法检索它。

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

【问题讨论】:

    标签: 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,我将它们用于我的邮件系统,它们工作得很好
    • 山魈支持似乎有一个有用的答案:stackoverflow.com/a/29010839/4940233
    • 我正在使用 webhook 获取 sentopenclicked 状态,但是没有 回复事件,对吧?是的,我使用 Mandrill 支持答案来设置 Message-Id 标头字段,但在批量电子邮件的情况下,将为所有邮件设置一个 id,这不是一个好主意...
    • 您可以使用入站电子邮件 webhook mandrill.zendesk.com/hc/en-us/articles/…
    猜你喜欢
    • 2023-03-28
    • 2011-07-30
    • 2013-06-20
    • 2019-08-04
    • 2012-02-20
    • 2014-08-19
    • 1970-01-01
    • 2015-05-13
    相关资源
    最近更新 更多