Использование SendGrid для библиотеки C # и SendGrid API v3, если вы случайно включите один и тот же адрес электронной почты дважды, это приведет к тому, что сообщение вообще не будет отправлено.
Согласно SendGrid документация :
Все получатели в одном объекте персонализации (в полях to, cc или bcc) будут видеть одно и то же сообщение электронной почты, как определено данными вэта персонализация, поэтому мы не разрешаем дублирование электронных писем между этими тремя массивами в одной персонализации.
Например:
var msg = new SendGridMessage();
msg.AddTo("test@example.com");
msg.AddBcc("test@example.com"); // duplicate email address, nothing will be sent
До отправки писем я бы хотелпроверьте SendGrid Personalizations
и удалите все дублирующиеся электронные письма.
Вот код, который у меня есть на данный момент:
var msg = new SendGridMessage();
msg.AddTo("test@example.com");
msg.AddBcc("test@example.com"); //has a duplicate email address, nothing will be sent
foreach (var p in msg.Personalizations)
{
var emails = new List<EmailAddress>();
emails.AddRange(p.Tos);
emails.AddRange(p.Ccs);
emails.AddRange(p.Bccs);
// find duplicates
var duplicates = emails.GroupBy(x => x.Email)
.Where(g => g.Count() > 1)
.Select(y => y.Key)
.ToList();
// remove all but one...
// remove duplicates from Bccs first, then Ccs, then Tos
foreach (var d in duplicates)
{
}
}
Я застрял на лучшем способ уменьшить количество дублирующихся адресов электронной почты внизодному уникальному.Кто-нибудь нашел хороший способ обеспечить отсутствие дублирующих адресов электронной почты с SendGrid?