mc:edit 在带有 Mandrill Javascript API 的 Mailchimp 模板中不起作用
Posted
技术标签:
【中文标题】mc:edit 在带有 Mandrill Javascript API 的 Mailchimp 模板中不起作用【英文标题】:mc:edit do not work in Mailchimp template with Mandrill Javascript API 【发布时间】:2014-12-06 05:04:16 【问题描述】:我正在尝试通过带有 Mailchimp 模板的 Mandrill API 发送电子邮件。我正在使用 Parse.com 在云代码中执行此操作,请参阅此处https://www.parse.com/docs/cloud_modules_guide#mandrill。电子邮件发送得很好,但是 mc:edit 字段永远不会更新。这是模板中现在唯一的内容:
<span mc:edit="ship_id">ship_id</span>
这就是我在 javascript 中调用的样子,希望有人能看到我的错误。如果这有什么不同,我将在 Parse.com 云代码中运行它。非常感谢!
var Mandrill = require('mandrill');
Mandrill.initialize('api-key');
Mandrill.sendTemplate(
template_name: "Drip campaign",
template_content: [
name: "ship_id",
content:"Test Test"
],
message:
text: "Hi",
subject: "You have new mail",
from_email: "info@example.com",
from_name: "Thomas",
to: [
email: "answer@example.com",
name: "Fred"
],
"headers":
"Reply-To": "answer@example.com"
,
"important": false,
"track_opens": true,
"track_clicks": true,
,
async: true
,
success: function(httpResponse)
response.success("Email sent!");
,
error: function(httpResponse)
console.error(httpResponse);
response.error("Uh oh, something went wrong");
);
【问题讨论】:
亲爱的马吕斯;我认为 sendTemplate 在另一个 js 文件中,我看不到这个 js 文件的导入(需要)。你能检查一下吗? 你能检查一下之前的评论吗?如果这不能解决您的问题,那么我可以提供一些代码,您可以在其中更新 mc:edit 字段。问候。 嗨 kingspeech,我实际上正在使用 Parse API,我相应地更新了我的问题。 【参考方案1】:好的,所以我的代码没有任何问题,但似乎模板没有从 Mailchimp 正确发送到 Mandrill,因为添加了诸如 |NAME| 之类的字段用于合并标记或 mc:edit ="name" 只是没有填充。至少 Mailchimp 模板的代码很奇怪,而且非常嵌套。
因此,我建议在此处使用您自己的 html,您可以在其中输入合并标记或 mc:edits https://mandrillapp.com/templates/。
【讨论】:
亲爱的 Marius, 抱歉回复晚了。如果有人再次需要,我会更新我的答案。希望你能解决你的问题。问候。【参考方案2】:据我了解,您希望在发送电子邮件的同时动态编辑邮件内容。正如您已经使用过的那样,您可以通过 Mandrill API 来完成。我建议你使用链接中可以下载的js文件;
https://github.com/jlainog/parse-mandrill-sendTemplate
在github账号的js文件中,你可以通过标签mc:edit动态编辑邮件内容(必须在你的模板中)。
对于我的情况,代码的工作副本如下;
Parse.Cloud.define("sendMail", function(request, response)
var Mandrill = require('cloud/mandrillSend.js');
var sentTo = //Mail address to sent
var subject = //Mail Subject
var fromEmail = //From email
var fromName = //From Name
var sentToName = //Parameters from request
var fullName = //Full Name
Mandrill.initialize('YOUR MANDRILL API KEY');
Mandrill.sendTemplate(
template_name: "MANDRIL TEMPLATE",
template_content: [
name: "nameHeader",
content: sentToName,
,
name: "mail",
content: sentTo,
,
],
"key": "YOUR MANDRILL API KEY",
message:
subject: subject,
from_email: fromEmail,
from_name: fromName,
to: [
email: sentTo,
name: fullName
],
important: true
,
async: false
,
success: function (httpResponse)
console.log(httpResponse);
response.success("Email sent!");
,
error: function (httpResponse)
console.error(httpResponse);
response.error("Uh oh, something went wrong");
);
);
例如,在 Mandrdil Template 中有一个带有 id 的 span;
<span mc:edit="mail"> test@gmail.com</span>
希望这会有所帮助。 问候。
【讨论】:
亲爱的 Marius,当新用户注册到系统时,我正在使用 mandrill 发送模板 js 文件发送邮件。如果您无法解决问题,请通知我,以便我提供一些代码。问候。 感谢 kindpeech,我会试试的。但是,该代码来自哪里。我只是想知道为什么不能让它像 Parse API 中描述的那样工作,但必须与导出函数和所有东西一起使用。 亲爱的 Marius,和你一样,在其中一个项目中,当新用户注册到系统时,我需要发送一封电子邮件。我继续 Parse 教程,但我无法发送带有动态更改字段的电子邮件。然后我查看 Parse 博客,其中一个博客条目指向链接 mandrill-sendTemplate。然后我成功发送电子邮件。所以我想和你分享。希望你能解决你的问题。如果你不能告诉我,我可以和你分享代码。问候。 嘿 kingspeech,它仍然不起作用。电子邮件发送得很好,但是 mc:edit 字段永远不会改变。知道我现在应该做什么吗? 是否可能需要对 main.js 的第 9 行中的注释做一些事情//那些是必需的,但它们被忽略了?以上是关于mc:edit 在带有 Mandrill Javascript API 的 Mailchimp 模板中不起作用的主要内容,如果未能解决你的问题,请参考以下文章