【问题标题】:Sending Mandrill Email from C#从 C# 发送 Mandrill 电子邮件
【发布时间】:2015-04-23 07:23:38
【问题描述】:

我定义了一个想要发送的 Mandrill 电子邮件模板。在发送之前,我想替换模板中定义的某些参数。 例如,其中一封电子邮件是忘记密码,我想替换模板中参数|NEW_PASSWORD|的新密码

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

这是我目前的代码

var api = new MandrillApi(api_key);

var recipients = new List<Mandrill.Messages.Recipient>();

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

Mandrill.NameContentList<string> content = new Mandrill.NameContentList<string>();

MVList<Mandrill.Messages.SendResult> result = api.SendTemplate(template, content, message);

感谢任何帮助。

谢谢

罗希特

【问题讨论】:

  • 那么你的问题是什么?
  • 您可能需要考虑电子邮件模板服务,而不是直接与 Mandrill 交互。结帐 sendwithus.com 或 customer.io。两者都使管理变量变得更加容易,并且可以很好地与 C# 配合使用。
  • 感谢您的建议。但是为什么要在 Mandrill 和应用程序之间添加另一个接口呢? Mandrill 模板公开了变量,所以只是为了让这些变量正常工作,我觉得在两者之间添加另一个接口并不合理。
  • 我正在使用gist.github.com/andyhuey/3444063 上的代码,虽然我真的不知道执行此操作的上下文,但我相信它足以掌握合并变量的工作方式。

标签: c# mandrill


【解决方案1】:

1)从

安装nuget包

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

2)在您的模板中添加占位符之类的。 {{供应商名称}}

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

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

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

            email.AddGlobalVariable("vendor_name", "FI Test");
            //your template name
            string TemplateName = "Your Template Name.";

            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);

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-09-03
      • 2016-07-04
      • 2013-04-16
      • 2014-05-23
      • 2017-04-30
      • 1970-01-01
      • 2016-07-05
      • 2016-02-28
      • 2015-08-25
      相关资源
      最近更新 更多