使用该send-template方法和Lutung Mandrill Java API实现,当模板变量包含表单的换行符时\n,它们将在生成的电子邮件中被完全忽略或删除.String包含\n字符的s 保持不变,直到GET send-template执行该方法.所以我猜String在Mandrill服务器上有一些分析和转换可以删除特殊字符.
如何在Mandrill电子邮件中重新开始工作?
就我而言,我使用 Handlebars 作为山魈模板,我通过将 HTML 发送到模板<br/>而不是用类似以下内容的字符串\n替换来解决这个问题:\n<br/>.Description.Replace("\n", "<br/>");
然后在 mandrill 模板上,我将变量放在 {{{ variable }}} 而不是 {{ variable }} 内
http://blog.mandrill.com/handlebars-for-templates-and-dynamic-content.html
HTML 转义
Handlebars HTML 转义
{{expression}}. 如果您不希望 Handlebars 转义某个值,请使用“triple-stash”、“{{{.在您的模板中:
<div> {{{html_tag_content}}} </div>在您的 API 请求中:
"global_merge_vars": [ {
"name": "html_tag_content",
"content": "This example<br>is all about<br>the magical world of handlebars" } ]
Run Code Online (Sandbox Code Playgroud)
结果:
这个例子
是关于
车把的神奇世界
gui*_*val -1
如果你想发送更复杂的内容,无论是html,还是带有换行符的变量等等,你可以先渲染模板然后发送消息,而不是直接使用send-template.
通过调用来渲染模板templates.render:
{
"key": "example key",
"template_name": "Example Template",
"template_content": [
{
"name": "editable",
"content": "<div>content to inject *|MERGE1|*</div>"
}
],
"merge_vars": [
{
"name": "merge1",
"content": "merge1 content\n contains line breaks"
}
]
}
Run Code Online (Sandbox Code Playgroud)
将结果保存到变量中rendered_content。
使用渲染模板发送消息messages.send:
{
"message": {
"html": rendered_content,
...
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1807 次 |
| 最近记录: |