Mailchimp/Mandrill 和 Handlebars 更改预览文本

Posted

技术标签:

【中文标题】Mailchimp/Mandrill 和 Handlebars 更改预览文本【英文标题】:Mailchimp/Mandrill and Handlebars changing preview text 【发布时间】:2020-11-01 06:21:24 【问题描述】:

我正在与 MailChimps Mandrill 合作使用把手发送跨国电子邮件。整个设置已完成,电子邮件发送得非常好 - 但当它们到达时,它们仍然具有用于预览文本的默认 Mailchimp 模板字符串,如下所示:

|*MC_PREVIEW*|

有没有人知道有一种方法可以将其从显示中删除或更改?目前我必须进入 Mandrill 中的电子邮件代码并自己删除代码块 - 想知道 Mailchimps 是否有办法做到这一点,因为每次更新和导出电子邮件模板时都会有点乏味让 Mandrill 进去再把它取下来。

提前致谢!

【问题讨论】:

【参考方案1】:

我们遇到了同样的问题并编写了一个小的 lambda http endoint,我们可以通过 slack 集成触发它来修复我们所有的 mandrill 模板:

const mailchimpFactory = require('@mailchimp/mailchimp_transactional');

const mailchimp = mailchimpFactory(process.env.MAILCHIMP_API_KEY);

function fixTemplate( name, code ) 
  const regex = /\*\|MC_PREVIEW_TEXT\|\*/ig; // regexr.com/69390
  const fixedBody = code.replace(regex, '');
  console.log(`Updating $name`);
  return mailchimp.templates.update(
    name,
    code: fixedBody,
  );


// removes all mailchimp preview merge variables from all
// templates in mandrill (since we're using handlebars)
async function fixAllTemplates(event) 

  const templates = await mailchimp.templates.list();
  await Promise.all(templates.map(fixTemplate));
  const templateList = templates.map(( name ) => `\n> $name`).join('');

  const msg = `*Mandrill Template Fixer:* Updated $templates.length templates. $templateList`;
  console.log(msg);
  return  statusCode: 200, body: msg ;


module.exports =  fixAllTemplates ;

【讨论】:

【参考方案2】:

我遇到过这个问题,首先将 Mandrill 默认合并标签更改为 Handlebars,然后将模板从 Mailchimp 重新导出回 Mandrill。

这会将电子邮件代码中的所有 *|Mailchimp|* 样式合并标签转换为 handlebars 样式。

重要修改:

如果您的 Mailchimp 模板使用把手来定义合并标签,这些将像这样被转义:

\mergeTag

您要么必须手动删除这些反斜杠以使标签再次工作,要么在导出前将 Mailchimp 中的合并标签重新格式化为 *|MAILCHIMP|* 样式。

如果选择后者,在将驼峰式合并标签转换为 Mailchimp 样式时,只需将其全部大写即可。

例如mergeTag 变为 *|MERGETAG|*

【讨论】:

非常感谢 Jamie,下次需要进行一些更改时我会尝试一下 看看我的编辑 - 我添加了一些额外的信息,您需要避免破坏您的模板!

以上是关于Mailchimp/Mandrill 和 Handlebars 更改预览文本的主要内容,如果未能解决你的问题,请参考以下文章

MailChimp (Mandrill) for .NET 为啥电子邮件包含图像?

将 Mailchimp/Mandrill 与 Ruby 结合使用

Mandrill CA SSL 错误与 cURL

cursor: hand和cursor:pointer的区别

846. Hand of Straights

hdu3926 Hand in Hand 同构图