Mandrill可编辑模板:mc:编辑链接href

bpi*_*pat 5 html django hyperlink mailchimp mandrill

我正在尝试使用Mandrill模板发送订单跟踪电子邮件.

使用mc:edit适用于简单的文本 <span mc:edit="ship_id">ship_id</span><br>

我想知道是否有办法在变量即tracking_url中传递href链接

<a class="mcnButton " title="Track order" href=tracking_url target="_blank" style="font-weight: bold;text-align: center;">Track Order</a>

我正在使用Djrill for Django,这是迄今为止发送电子邮件的代码,我想将tracking_url添加为template_content变量或类似的东西

msg = EmailMessage(subject="Track your order", from_email="admin@example.com", to=[user.email])
    msg.template_name = "order-sent"
    msg.template_content = {'order_id' : order_id, 'order_date' : order_date, 'order_type' : order_type, 'first_name' : user.first_name, 'last_name' : user.last_name, 'phone' : user.info.phone,
    'd_street' : d.street, 'd_zipcode' : d.zipcode, 'd_city' : d.city, 'd_country' : d.country}
    msg.send()
Run Code Online (Sandbox Code Playgroud)

似乎可以使用AddGlobalVariable方法(在这里阅读),但我无法弄清楚如何使用它.

bal*_*dre 4

我有一个电子邮件调度程序,它使用 MandripApp 发送普通电子邮件(作为 SMTP)以及使用模板发送电子邮件。

\n\n

我不知道如何传递您所要求的内容,因为我不再使用mc:edit属性(因为我的用户永远不会自己编辑模板,我或开发人员会),但我可以为您提供有关全局变量的帮助。

\n\n

全局变量与 Mailchimp 变量相同,就像*|EMAIL|*这就是我所做的:

\n\n
var mergeVars = Dictionary<string, string>();\nmergeVars.Add("ORDER_ID", orderId);\nmergeVars.Add("CUSTOMER_NAME", fullname);\nmergeVars.Add("CUSTOMER_FNAME", fullname.Contains(" ") ? fullname.Split(\' \')[0] : fullname);\nmergeVars.Add("CUSTOMER_EMAIL", email);\n
Run Code Online (Sandbox Code Playgroud)\n\n

例如,孔表:

\n\n
StringBuilder sb = new StringBuilder();\nforeach (ProductInfo pi in products)\n{\n    sb.Append("<tr>");\n    sb.AppendFormat("<td style=\\"text-align:left;\\"><img src=\\"http://dynassets1.gavekortet.dk/{2}/products/trans/{1}_1.png\\" alt=\\"{0}\\" /></td>", pi.Title, pi.ID, shopId);\n    sb.AppendFormat("<td style=\\"text-align:left;\\">{0} x {1}</td>", pi.Qty, pi.Title);\n    sb.AppendFormat("<td style=\\"text-align:right;\\">{0:N2}</td>", double.Parse(pi.CardValue));\n    sb.Append("</tr>");\n}\n\nmergeVars.Add("ITEMS_LIST", sb.ToString());\n
Run Code Online (Sandbox Code Playgroud)\n\n

在 MandrillApp 的模板中,我只是有(对于表格部分):

\n\n
<table style="width: 100%; padding: 0 30px;">\n    <thead>\n      <tr>\n        <th style="width:75px; text-align:left;">Gavekort</th>\n        <th style="width:75px; text-align:left;">Ordreoversigt</th>\n        <th style="width:75px; text-align:right;">V\xc3\xa6rdi (kr.)</th>\n      </tr>\n    </thead>\n\n    <tbody>\n        *|ITEMS_LIST|*\n    </tbody>\n</table>\n
Run Code Online (Sandbox Code Playgroud)\n\n

并在代码中执行以下操作:

\n\n
var tmplMessage = new MandrillSendTemplateItem();\ntmplMessage.key = password;\n\ntmplMessage.message = new MessageItem();\n\n// Email Destination\ntmplMessage.message.to = new List<MessageToItem>();\ntmplMessage.message.to.Add(new MessageToItem() { name = destinationName, email = destinationEmail, type = "to" });\ntmplMessage.message.to.Add(new MessageToItem() { name = "Bruno Alexandre", email = "my_email@domain.com", type = "bcc" }); // always send me a copy so I know what\'s going on\n\n// Global Variables\ntmplMessage.message.global_merge_vars = new List<TemplateContentItem>();\ntmplMessage.message.global_merge_vars.Add(\n    new TemplateContentItem() { \n        name = "TASKCOMPLETE", \n        content = DateTime.UtcNow.ToString("dd MMM yyyy HH:mm") });\n\n// Global Variables passed in properties\nif (properties != null)\n{\n    foreach (var p in properties)\n    {\n        tmplMessage.message.global_merge_vars.Add(\n            new TemplateContentItem() { name = p.Key, content = p.Value });\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

并发送电子邮件。

\n\n

我希望它可以帮助您做您需要做的事情。

\n\n
\n\n

请注意,您只在代码中传递全局变量的名称,但在模板中您需要调用它来包装它,|*因此*|

\n\n
tmplMessage.message.global_merge_vars.Add(\n    new TemplateContentItem() { \n        name = "TASKCOMPLETE", \n        content = DateTime.UtcNow.ToString("dd MMM yyyy HH:mm") });\n
Run Code Online (Sandbox Code Playgroud)\n\n

可以在模板中访问为:

\n\n
<span class="completed">*|TASKCOMPLETE|*</span>\n
Run Code Online (Sandbox Code Playgroud)\n