从C#发送Mandrill电子邮件

时间:2015-02-21 17:35:31

标签: c# mandrill

我已经定义了Mandrill电子邮件模板,我想发送。在发送之前,我想替换模板中定义的某些参数。 例如,其中一封电子邮件是Forgot Password,我想在模板中替换参数 | NEW_PASSWORD |

的新密码

我的模板是在MailChimp中创建的,并导入到Mandrill中,我正在使用以下.Net库:

这是我到目前为止的代码

var api = new MandrillApi(api_key);

var recipients = new List();

recipients.Add(new Mandrill.Messages.Recipient(user_email,user_name));

Mandrill.NameContentList content = new Mandrill.NameContentList();

MVList结果= api.SendTemplate(模板,内容,消息);

感谢任何帮助。

由于

罗希特夏尔

2 个答案:

答案 0 :(得分:0)

我在山rill http://blog.mandrill.com/handlebars-for-templates-and-dynamic-content.html上使用车把作为合并语言

然后,我发送具有与模板相同名称的变量,或者甚至发送具有相同成员名称的完整对象,以匹配模板中的哪些变量,然后由Handlebar和Mandrill处理将其映射到模板。

答案 1 :(得分:0)

1)从安装nuget包

https://github.com/shawnmclean/Mandrill-dotnet

2)在您的模板中添加占位符。 {{vendor_name}}

3)在api中使用global_merge_vars替换占位符。

他们提供了 具有要替换的占位符名称和值的AddGlobalVariable方法。

            Mandrill.Models.EmailMessage email = new Mandrill.Models.EmailMessage();
            email.FromEmail = "certificate@riskhippie.com";
            email.Subject = "Mandrill API Template Replace";
            email.RawMessage = "Hello Pradip Patel";
            email.MergeLanguage = "handlebars";

            email.AddGlobalVariable("vendor_name", "FI Custom");
            //your template name
            string TemplateName = "1-Owner to Vendor 1st Req.";

            email.To = new List<Mandrill.Models.EmailAddress>()
                {
                  new Mandrill.Models.EmailAddress("pradippatel1411@gmail.com")
                };

            Mandrill.Requests.Messages.SendMessageTemplateRequest objTemp = 
                new Mandrill.Requests.Messages.SendMessageTemplateRequest(email, TemplateName);

            var results = await api.SendMessageTemplate(objTemp);