gpt4 book ai didi

java - 如何在 Mandrill 模板中使用 ParseObject 发送动态内容电子邮件?

转载 作者:行者123 更新时间:2023-11-30 02:41:01 32 4
gpt4 key购买 nike

您好,我正在设计一个需要向各种客户端发送 CSS/HTML 邮件的应用程序。到目前为止我所做的是完成应用程序并将所有数据作为解析对象发送到 Parse Cloud 中。还制作了 Mandrill 配置文件,通过 MailChimp 上传了所需的模板,并生成了用于 Cloud Code for Parse 的 API key 。我的问题是如何在我的邮件中使用这些解析对象,以便邮件内容动态变化(我在邮件中的表项很少,应该根据用户输入的数据进行更改)?如果可能的话,你能给我提供示例 JS 代码吗?我用谷歌搜索过这个,但找不到很多与这个主题相关的文档。或者我应该使用一些其他语言(如 Python)的 Mandrill API 吗?提前致谢。!!

最佳答案

目前我正在试用 Mandrill Java 第 3 方 API,我认为这是适合您的完整答案:

我现在将向您介绍如何使用 Mandrill 模板的 Handlebars :

假设这是我在名为“my_test_template”的 Mandrill 帐户中的模板:

<!DOCTYPE html PUBLIC>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Template Email</title>
</head>
<body>
<p> Hello my name is {{name_placeholder}} and this is the test template.</p>
</body>
</html>

通常,要为“name_placeholder”设置动态内容,您必须将此 json 对象与 javascript rest 调用一起使用:

{
"key" : "[api_key]",
"message" : {
"to" : [ {
"email" : "someone@something.com",
"name" : "Someone"
} ],
"merge" : true,
"global_merge_vars" : [ {
"name" : "name_placeholder",
"content" : "Someone"
} ],
"merge_vars": [],
"async" : false
},
"template_name" : "my_test_template",
"template_content" : [],
"merge_language": "handlebars"
}

这里必须注意的是“merge_language”。如果您使用的是 Handlebars ,它仅受“ Handlebars ”语言的支持。如果您不设置此数据,它将使用默认语言“mailchimp”,您的动态内容将不会被替换。

要提供此功能,您可以使用以下使用此 Java 3rd party API 的 java 代码:

public void testTemplateMail() {
try {
MandrillMessage message = new MandrillMessage();

//Set recipient
ArrayList<Recipient> recipients = new ArrayList<Recipient>();
Recipient recipient = new Recipient();
recipient.setEmail("someone@something.com");
recipient.setName("Someone");
recipients.add(recipient);
message.setTo(recipients);
message.setPreserveRecipients(true);

//Set global merge vars
List<MergeVar> globalMergeVars = new ArrayList<>();
MergeVar mergeVar = new MergeVar();
mergeVar.setName("name_placeholder");
mergeVar.setContent("Someone");
globalMergeVars.add(mergeVar);
message.setGlobalMergeVars(globalMergeVars);

//Set merge language (*important)
message.setMergeLanguage("handlebars");

//You must provide at least an empty template content
Map<String, String> template_content = new HashMap<>();

//Send mail
MandrillMessageStatus[] messageStatusReports = mandrillApi
.messages().sendTemplate("my_test_template", template_content, message, false);
if (messageStatusReports != null && messageStatusReports.length > 0) {
logger.info("Mail sent info: " + messageStatusReports[0].getStatus());
}
} catch (MandrillApiError e) {
logger.error(e.getMessage());
} catch (IOException e) {
logger.error(e.getMessage());
}
}

请注意,我的主题和发件人电子邮件信息已设置为邮件模板。

要提供 Handlebars 的更多详细信息,您可以访问 this网站。

关于java - 如何在 Mandrill 模板中使用 ParseObject 发送动态内容电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25757798/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com