[email protected]
Под этой учетной записью электронной почты (на панели управления GoDaddy) я создал несколько групп рассылки для этого электронного письма в целях тестирования. Бывший. [email protected], [email protected], [email protected] Итак, когда я отправляю несколько тестовых писем группе людей (например, Тому, Марку), все они получают адрес [email protected] и я могу фильтровать их по разным папкам в папке «Входящие» моей учетной записи Outlook. Это работает нормально, если я отправляю одно электронное письмо ([email protected]) или отправляю несколько электронных писем, но использую функцию SendGrid
Код: Выделить всё
msg.AddTos(emailAddresses);
Проблема – я изменил приведенный ниже код, чтобы использовать персонализацию, но когда я отправляю несколько электронных писем в разные группы рассылки (например, [email protected], [email protected]) 1 получил только 1 электронное письмо. Я не получаю больше 1!
Я просмотрел панель управления SendGrid и обнаружил, что все электронные письма имеют статус доставленных, что означает, что они получили ответ ok() от сервера Outlook. .
Если я попытаюсь отправить только одно электронное письмо за раз, у меня не возникнет проблем, но если я отправлю несколько электронных писем, я получу только одно. Кроме того, я получаю IsSuccessStatusCode со значением true обратно из вызова sendEmailAsync(). Поэтому я не получаю никаких ошибок на стороне моего приложения.
Наконец, если я отправляю группу электронных писем без персонализации, я получаю их все, но не все. если я использую персонализацию! Но мне нужно использовать персонализацию, потому что я не хочу, чтобы каждый получатель электронной почты видел всех остальных, кому я тоже отправляю электронные письма.
Код: Выделить всё
// without works!
sendGridMessage.AddTo(new EmailAddress(toEmailAddresses[i]));
// with doesn't work in receiving all emails in my inbox
sendGridMessage.AddTo(new EmailAddress(toEmailAddresses[i]), i);
Вот мой код.< /p>
Код: Выделить всё
dynamic templateData = new JObject();
templateData.name = "Test";
templateData.text = "Testing";
// works! email received
var emails = new string[] {"[email protected]"};
// doesn't work! only some emails received
var emails = new string[] {"[email protected]", "[email protected]", "[email protected]"};
// send email
_emailService.ExecuteTemplate(emails, "Test Subject" templateData);
// function
public async Task ExecuteTemplate(string[] toEmailAddresses, string subject, dynamic templateData) {
var client = new SendGridClient(sendGridOptions.SendGridKey);
var sendGridMessage = new SendGridMessage() {
From = new EmailAddress(_config["SendGrid:Server"], "Yogabandy"),
TemplateId = _config["SendGrid:TemplateId"]
};
templateData.subject = subject;
for (int i = 0; i < toEmailAddresses.Length; i++) {
sendGridMessage.AddTo(new EmailAddress(toEmailAddresses[i]), i);
sendGridMessage.SetTemplateData(templateData, i);
}
var response = await client.SendEmailAsync(sendGridMessage);
if (response.IsSuccessStatusCode) {
_logger.LogInformation("Email queued");
} else {
_logger.LogError("Email not queued. Satus Code: " + response.StatusCode);
}
return response;
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... ail-addres