Я использую C #, 4.7.1 FW и nuget SendGrid.
Я связывался со службой поддержки SG и до сих пор не получил указаний или не выяснил, как отправить шаблон. Я попытался использовать родное MailMessage, а также SendGridMessage.
У меня указан идентификатор шаблона, и я продолжаю сталкиваться с проблемами при сбое электронной почты, и мне говорят "Замены не могут использоваться с динамическими шаблонами"
Вот последний фрагмент, который я бью головой о кирпичную стену:
var apiKey = "snip";
var client = new SendGridClient(apiKey);
var from = new EmailAddress("from@domain.com", "display name");
var subject = "Sending an email template";
var to = new EmailAddress("me@domain.com", "To Name");
var plainTextContent = "";
var htmlContent = ""; // I read htmlContent needs to be blank?
var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
Personalization p = new Personalization
{
Substitutions = new Dictionary<string, string>()
};
p.Substitutions.Add("[eventname]", "test event"); // my template has 3 subs, this is one of them
p.Tos = new List<EmailAddress>();
p.Tos.Add(to);
msg.Personalizations.Add(p);
msg.SetTemplateId("snip");
var response = await client.SendEmailAsync(msg);
var stringResponse = response.Body.ReadAsStringAsync();
Ответ:
{"errors": [{"message": "Подстановки нельзя использовать с динамическими шаблонами", "field": "personalizations.1.substitutiontions", "help": "http://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/errors.html#message.personalizations.substitutions"}]}
Я близок к тому, чтобы просто вернуть все это к созданию своего собственного HTML-шаблона и его сохранению в базе данных, извлекать его и заменять заполнители, такие как [имя события], значениями. Это не должно быть так сложно.