2

Я использую SendGrid для отправки писем в список пользователей через консольное приложение в asp.net. Я отправляю список адресов электронной почты пользователя в разделе AddTo при отправке электронной почты. Код выглядит следующим образом:SendGrid «To» Список идентификаторов электронной почты, доступных всем в списке

SendGridMessage message = new SendGridMessage();
message.AddTo(new List<string>() { "[email protected]", "[email protected]", "[email protected]", "[email protected]" });

сообщение отправляется, как и ожидалось, но в разделе электронной почты «To», я могу видеть, адреса электронной почты всех пользователей, кому это письмо было отправлено (изображение прилагается ниже). Я хочу, чтобы идентификаторы электронной почты были скрыты, чтобы никто не злоупотреблял другими идентификаторами электронной почты в списке. В любом случае, я могу выполнить это с помощью SendGrid? enter image description here

ответ

1

Используйте .AddBcc() вместо .AddTo(). НО, если вы это сделаете, вам нужно будет установить адрес To на что-то вроде «[email protected]», что не является идеальным и может увеличить вероятность того, что сообщение закончится в папках SPAM или Junk вашего пользователи.

SO вместо этого напишите цикл for, чтобы отправить электронное письмо пользователю.

var emailAddresses = new List<string>() { "[email protected]", "[email protected]", "[email protected]", "[email protected]" }; 

for (var emailAddress in emailAddresses) 
{ 
    var email = new SendGridMessage(); 

    email.AddTo(emailAddress); 

    // set other values such as the email contact 

    // send/deliver email 
} 

Является ли содержание сообщения электронной почты одинаковым для всех? Я бы предположил, что у каждого человека будут разные суммы «ежемесячного использования», и если так, то цикл цикла будет лучше ...

2

Чтобы отправить нескольким получателям в SendGrid, не видя их друг друга, вы хотите использовать X-SMTPAPI header, так как напротив встроенного заголовка SMTP To.

var header = new Header(); 

var recipients = new List<String> {"[email protected]", "[email protected]", "[email protected]"}; 
header.SetTo(recipients); 

var subs = new List<String> {"A","B","C"}; 
header.AddSubstitution("%name%", subs); 

var mail = new MailMessage 
{ 
    From = new MailAddress("[email protected]"), 
    Subject = "Welcome", 
    Body = "Hi there %name%" 
}; 

// add the custom header that we built above 
mail.Headers.Add("X-SMTPAPI", header.JsonString()); 

Заголовок SMTPAPI будет разобран SendGrid, и каждый получатель присылают отчетливое сообщение сингл-To.

+0

Это применимо при использовании классов SmtpClient и MailMessage. OP использует SendGridMessage. Если ОП изменит свой код на использование классов SmtpClient и MailMessage, это сработает. –

Смежные вопросы