是否可以在 Mandrill 中使用嵌套的合并标签?

Posted

技术标签:

【中文标题】是否可以在 Mandrill 中使用嵌套的合并标签?【英文标题】:Is it possible to use nested merge tags in Mandrill? 【发布时间】:2014-05-16 13:10:43 【问题描述】:

是否可以使用嵌套合并标签

我们需要的是能够根据来自其他合并标签的值定义UNSUB标签,就像这个例子:

<a 
href="*|UNSUB:*|COMMUNITYURL|*/site/unsuscribe/user_id/*|USERID|*/hash/*|HASH|*/type/all|*">
Unsubscribe
</a>

这是正确的吗? 应该以不同的方式完成吗?

【问题讨论】:

(我没有使用过 mandrill API)。您的问题不清楚为什么要定义 UNSUB 标签。是什么阻止你直接这样做:&lt;a href="*|COMMUNITYURL|*/site/unsuscribe/user_id/*|USERID|*/hash/*|HASH|*/type/all|*"&gt; Unsubscribe &lt;/a&gt; 因为在 Mandrill 中,当您添加 UNSUB 合并标签时,它会自动将 List-Unsubscribe 标头添加到消息中。并且您的邮寄声誉得到了提高:) 顺便说一句,我正在使用 sendTemplate 通过 api 发送电子邮件,这是对多个邮件的一个请求。我知道预期 json 中存在 headers 部分,但这是一个通用部分,我需要为每封邮件提供个性化的退订链接。因此,我需要另一个部分用于个性化标题,例如对于合并变量,您可以使用 global_merge_vars 部分用于所有电子邮件中相同的合并标签,而 merge_vars 部分用于合并标签,这些标签取决于特定的邮件已发送。 【参考方案1】:

目前无法嵌套合并标签。在这种情况下,您最好的选择是添加您自己的 List-Unsubscribe 标头(使用 API 中的 headers 参数)并传递您自己的 URL,或者使用您的合并标签而不是 UNSUB 合并标签构建的 URL。

【讨论】:

但是如果我想发送一个包含多个收件人(有时是数千个)的请求并且应该为每个收件人个性化取消订阅链接:我如何包含 List-Unsubscribe 标头?我没有recipient_headers 部分...【参考方案2】:

From the API:

点击 [取消订阅] 链接时会发生什么?

如果收件人单击生成的链接,则邮件状态将更改为未订阅,并且 > 收件人的地址将添加到您的拒绝黑名单中 山魈帐户。 将附加重定向 URL 以包含两个 可用于处理取消订阅的查询字符串参数 在您自己的系统或数据库中:md_id - _id,在 API 调用和 webhook 中提供 单击退订链接的特定消息md_email - 收件人电子邮件地址的 URL 编码版本

因此您不必担心为每个用户生成退订网址。只需输入一个通用 url,mandrill 就会自动在 md_email 变量中附加该用户的电子邮件。

文档建议您这样做:

<a href="*|UNSUB:http://mywebsite.com/unsub|*">Click here to unsubscribe.</a>

而且 mandrill 会附加正确的用户电子邮件和 ID:

 http://mywebsite.com/unsub?md_email=fulanito@gmail.com&m_id=23321

【讨论】:

这对我不起作用,因为我必须使用的取消订阅链接不是使用 madrill 的 webhooks 和 id 创建的,而是我们自己的。我需要在取消订阅链接中包含一个特定的 url(取决于接收消息的用户)一个 id 和一个安全哈希。【参考方案3】:

由于 mandrill 不支持嵌套合并标签,如果您不介意用户单击取消订阅后,这里是针对您的情况的解决方案,它没有进入 mandrill 的黑名单,因为取消订阅都由您的应用程序处理.

根据您的情况:

    手动撰写退订链接 例如 *|COMMUNITYURL|*/site/unsuscribe/user_id/*|USERID|*/hash/*|HASH|*/type/all/ 在您的链接末尾,附加山魈收件人电子邮件 var.email=*|EMAIL|* 例如 *|COMMUNITYURL|*/site/unsuscribe/user_id/*|USERID|*/hash/*|HASH|*/type/all/?email=*|EMAIL|*

    将链接放入您的山魈模板

    &lt;a href="*|COMMUNITYURL|*/site/unsuscribe/user_id/*|USERID|*/hash/*|HASH|*/type/all/?email=*|EMAIL|*"&gt;Unsubscribe Me&lt;/a&gt;

参考:mandrill doc

【讨论】:

以上是关于是否可以在 Mandrill 中使用嵌套的合并标签?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 Mandrill/Mailchimp 模板以在合并标签中保留换行符

如何在 Mandrill 中为本机 Mailchimp 的合并标签设置值?

Mandrill 模板合并失败

Mandrill 不替换 html 模板中的合并标签内容

无法让合并标签工作 - Mandrill/Parse

在 Mandrill 车把合并变量中使用 HTML