2017-06-22 57 views
0

我正在使用Sendgrid发送包含多个变量的模板的电子邮件。 当我只有一个电子邮件收件人时,一切正常。Sendgrid替换仅适用于第一个收件人

当我有多个收件人在收件人或一个收件人和一个抄送,第一封电子邮件是好的,但以下在替代标签中有空字符串。

下面是我的代码:

private bool SendEmail(MailAddress from, string[] to, string template, Dictionary<string, string> keyToReplace, string[] cc = null) 
{ 
     var message = new SendGridMessage(); 
     message.From = from; 
     message.AddTo(to); 

     if (cc != null && cc.Any()) 
     { 
      foreach (var ccAddress in cc) 
      { 
       message.AddCc(ccAddress); 
      } 
     } 

     message.Subject = " "; 
     message.Text = string.Empty; 
     message.Html = "<p></p>"; 
     message.EnableTemplate("<%body%>"); 
     message.EnableTemplateEngine(templateIds[template]); 

     foreach (var keyValue in keyToReplace) 
     { 
      var key = keyValue.Key; 
      if (!key.StartsWith("#")) 
      { 
       key = string.Format("#{0}#", key); 
      } 
      var value = keyValue.Value; 
      if (string.IsNullOrEmpty(keyValue.Value)) 
      { 
       value = " "; 
      } 
      message.AddSubstitution(key, new List<string> { value }); 
     } 
     var transportWeb = transportFactory(credentials); 
     transportWeb.Deliver(message); 
     logger.Info("Mail sent to : " + string.Join(", ", to)); 
     return true; 
    } 

回答

0

我enventually更新Sendgrid NuGet包从5.0.0版本9.5.0版本,它解决了这一问题。