Замена 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;
  }

person PMerlet    schedule 22.06.2017    source источник


Ответы (1)


В конце концов я обновил пакет nuget Sendgrid с версии 5.0.0 до версии 9.5.0, и это устранило проблему.

person PMerlet    schedule 23.06.2017