如何使用 Mailchimp 和/或 Mandrill 从电子邮件标题中删除 *|MC_PREVIEW_TEXT|*
Posted
技术标签:
【中文标题】如何使用 Mailchimp 和/或 Mandrill 从电子邮件标题中删除 *|MC_PREVIEW_TEXT|*【英文标题】:How to remove *|MC_PREVIEW_TEXT|* from email title using Mailchimp and or Mandrill 【发布时间】:2017-12-29 13:45:47 【问题描述】:我创建了一个电子邮件模板,其中包含 MailChimp 上的合并标签,然后将其发布到 Mandrill。
当我的脚本运行并收到电子邮件时,如您所见,|MC_PREVIEW_TEXT| 出现在标题中。
我已经在 Mandrill 和 MailChimp 中搜索过这个标签,但它没有出现在任何一个模板文件中。
如何从电子邮件中删除它?
【问题讨论】:
这个问题最糟糕的是当客户给我们发电子邮件并试图解释如何解决它时。你甚至不知道如何回复...... 【参考方案1】:我以前是通过 Mandrill 模板编辑器来完成的。
只需删除在正文打开后出现的这些行:
<!--*|IF:MC_PREVIEW_TEXT|*-->
<!--[if !gte mso 9]><!----><span class="mcnPreviewText"
style="display:none; font-size:0px; line-height:0px; max-height:0px; max-width:0px; opacity:0; overflow:hidden; visibility:hidden; mso-hide:all;">*|MC_PREVIEW_TEXT|*</span>
<!--<![endif]-->
<!--*|END:IF|*-->
要了解有关此合并标签的更多信息:https://kb.mailchimp.com/merge-tags/all-the-merge-tags-cheat-sheet
使用此合并标记以自定义编码生成预览文本 活动。插入 |MC_PREVIEW_TEXT| 在开头
之后 在您的 html 中添加标签。确保预览文本在正文中不可见 在您的广告系列中,将合并标签包装在一个隐藏的 元素中。找到或添加
在开始的
标签之后,添加:
提示:由于某种原因,在浏览器中搜索此文本不起作用,在带有 Mandrill 的 chrome 上搜索代码中编写的内容对我不起作用,所以很不幸找到它眼睛或复制粘贴到外部编辑器。
【讨论】:
MC_PREVIEW_TEXT 仍然显示在电子邮件中,尽管我在 mandrill 中的代码不包括您在答案中提到的代码块。除此之外,我从 java 代码发送合并标签并将模板的语言指定为把手,尽管非把手 |MC_PREVIEW_TEXT| 标记仍然出现。有什么建议吗? @JadChahine 你确定你在删除这些谎言后从 Mandrill 保存并发布了模板吗?当您再次从 Mailchimp 推送模板时,也不会将这些行复制回模板。给我你的模板代码的屏幕截图,我可以找出问题并将其与我的比较。 drive.google.com/file/d/0B0s1upZA7YV1WlFLM3Q3bTJBTmc/… drive.google.com/file/d/0B0s1upZA7YV1bmdrcmktMUlwY2s/… 谢谢 事实上,这些行在模板中不可用,如您的案例。我没有这些行,我只有在上一条评论中发布的行,并且我将语言设置为代码中的把手。但 MC_PREVIEW_DATA 标记仍会出现在电子邮件中。 @JadChahine 是的,我明白了,你的身体标签在哪里?【参考方案2】:我遇到了同样的问题,这是因为我在发送电子邮件时使用 Handlebars 作为合并语言。
Mailchimp 使用 Mailchimp 合并语言将 MC_PREVIEW_TEXT 变量放入模板中,因此如果您使用 Handlebars,它会显示出来。
要解决此问题,您必须在 Mandrill 设置 -> 发送默认值中将合并语言设置为 Handlebars。
但是当你这样做时,你必须在 Mailchimp 中设计你的电子邮件时使用 Mailchimp 合并语言,你不能使用 Handlebars。
然后,当您从 Mailchimp 发送到 Mandrill 时,它会将您所有的合并变量转换为 Handlebars。
【讨论】:
我希望 MailChimp/Mandrill 会对此进行调查。不可能将我们所有的模板(数千个)更改为把手,因此更改默认值不是我们的选择。但是我们尝试使用handlebars合并语言来做新的模板,现在我们必须在更新模板表单MailChip之后在Mandrill中手动修改html模板。乏味且容易出错。 我试过了,它修复了预览问题,但我的车把现在都没有被值替换。它们直接出现在电子邮件中。例如你好firstName【参考方案3】:我们使用两种方法:
-
通过 Mandrill REST API:在 POST 请求正文中使用 API 密钥,点击 /templates/info.json 端点,替换有问题的标记,然后将修改后的对象转发到 /templates/update.json
通过 GUI:Mandrill exposes a GUI 修改模板,让您可以接触比 Mailchimp 的编辑器更多的代码。把它删掉就行了。
上次我检查过,每次您将 Mailchimp 模板发送到 Mandrill 时,MC_PREVIEW_TEXT
标签都会重新出现。选择最适合您的,并坚持使用 Mandrill 来修改 Handlebars 模板。
【讨论】:
登录后,您可以转到mandrillapp.com/templates,或在“出站”选项卡下选择“模板”【参考方案4】:我们遇到了同样的问题,所以我为我们的 ROR 应用程序编写了简单的 rake 任务,它删除了 |MC_PREVIEW_TEXT|自动从 Mandrill 模板中提取部分。这是我的 rake 任务的示例:
require 'mandrill'
namespace :mandrill do
desc 'Removes *|MC_PREVIEW_TEXT|* section for all email templates in mandrill app'
task remove_mc_preview_text: :environment do
# Templates with handlebars merge language
templates = [
'template-example-1',
'template-example-2',
]
mandrill = Mandrill::API.new 'YOUR_API_KEY'
templates.each do |name|
begin
puts "Processing the template: #name"
# Get the information for an existing template
result = mandrill.templates.info name
# Finds the section with MC_PREVIEW_TEXT inside a template and substitutes it to the empty string
code = result['code'].sub(/\<\!\-\-\*\|IF:MC_PREVIEW_TEXT[[:ascii:]]+END:IF\|\*\-\-\>/m, '')
# If nil is provided for any fields, the values will remain unchanged.
from_email = nil
from_name = nil
subject = nil
text = nil
labels = nil
# Set to false to update the draft version of the template without publishing
publish = true
# Update the code for an existing template
mandrill.templates.update name, from_email, from_name, subject, code, text, publish, labels
puts "Successfully deleted *|MC_PREVIEW_TEXT|* section from the template: #name"
rescue Mandrill::Error => e
# Mandrill errors are thrown as exceptions
puts "A mandrill error occurred: #e.class - #e.message"
end
end
puts 'Done!'
end
end
需要完成几个步骤才能使其工作:
-
将 Mandrill API 客户端安装为 gem:
gem install mandrill-api
或添加到您的 Gemfile:gem 'mandrill-api'
使用上面列出的代码在 lib/tasks/ 文件夹中创建任何 rake 任务(例如 remove_mc_preview_text.rake)
将“YOUR_API_KEY”更改为您真正的 Mandrill API 密钥
将templates
数组中的模板名称更改为您的真实模板,如果由于某种原因您不知道它们,您可以在这里找到它们https://mandrillapp.com/templates
最后在 Rails 应用的根文件夹中运行这个命令:
bundle exec rake mandrill:remove_mc_preview_text
如果您使用任何其他编程语言,您可以使用我的示例编写类似的脚本,请参阅Mandrill API Clients 了解不同的编程语言。
【讨论】:
【参考方案5】:从您的 html 代码中删除以下行:
<span class="m_-63420320203924518mcnPreviewText" style="display:none;font-size:0px;line-height:0px;max-height:0px;max-width:0px;opacity:0;overflow:hidden">*|MC_PREVIEW_TEXT|*</span>
然后在邮件正文中插入您的 html 代码。 现在你的问题应该解决了....
【讨论】:
【参考方案6】:我们在使用 Mailchimp 模板编辑器向 Mandrill 发送模板时遇到了同样的问题。 Mailchimp 模板编辑器将https://
附加到车把标签上也存在问题,这迫使我们从有效负载中的网址中删除https://
。因此,为了修复 MC_PREVIEW_TEXT
和 url 问题,我创建了一个 Firefox 扩展。
https://addons.mozilla.org/en-US/firefox/addon/mandrillchimp/
您唯一需要做的就是创建“特殊”Mandrill API 密钥,它允许扩展获取和更新模板(信息和更新权限)。
【讨论】:
看起来不错。安装插件并允许访问 MailChimp 帐户数据的安全性如何?【参考方案7】:打开 html 文件,然后打开 ctrl+f
,然后使用 |MC_PREVIEW_TEXT|
搜索并替换您的文本
【讨论】:
【参考方案8】:预览文本是在填充时显示的前标题文本。根据经验,我已经看到合并标签出现在测试中。您可以做两件事:
-
在数据文件中为预览文本添加文本基本上每个人都一样或
您可以将其添加到 MailChimp 中的模板中。
如何更改前置标题:
干杯
【讨论】:
如何将它添加到 MailChimp 上的模板中?我不想使用这个合并标签。对不起,我很困惑 所有电子邮件都使用作为主题行扩展的预标头。搜索您提供更多信息的前标头和试金石。如果您不想使用它,则可以放置一个空格来代替它。我用你可以在哪里找到它的屏幕截图更新了我的帖子。【参考方案9】:这可能会帮助一些想知道如何做到这一点的人。
我在将 HTML 模板从 MailChimp 导出到 Intercom 时遇到了问题。
行号可能不同,所以复制 HTML 代码到记事本/文本编辑器中搜索 |MC_PREVIEW_TEXT| 找到它
Video with instructions.
【讨论】:
【参考方案10】:我使用导出到我的 Linux 和 Mac 服务器(Teamcity 代理)的 Mailchimp 模板。所以我使用 sed 将模式替换为漂亮的文本:
# replace
sed -i 's/*|MC\:SUBJECT|*/?/' *.html
sed -i 's/*|MC_PREVIEW_TEXT|\*/?/' *.html
对于那些在同一个地方需要邮件命令的人:
# send email
html="/path/to/html"
# linux agent
mutt -e 'set content_type=text/html' -s "Subject #%build.counter%" user@example.com <"$html"
# mac agent
/opt/homebrew/bin/mutt -e 'set content_type=text/html' -s "Subject #%build.counter%" user@example.com <"$html"
【讨论】:
以上是关于如何使用 Mailchimp 和/或 Mandrill 从电子邮件标题中删除 *|MC_PREVIEW_TEXT|*的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Mailchimp API 3.0 从用户或兴趣中获取超过 10 个条目?
如何使用 python mailchimp3 库查询 Mailchimp API?