Отправка почты через SMTP в C# с использованием BCC без TO
Я пытаюсь использовать System.Net.Mail.MailMessage
класс в C# для создания электронной почты, которая отправляется на список адресов электронной почты все через BCC
, Я не хочу включать TO
адрес, но кажется, что я должен, потому что я получаю исключение, если я использую пустую строку для TO
адрес в MailMessage
конструктор. Ошибка гласит:
ArgumentException
The parameter 'addresses' cannot be an empty string.
Parameter name: addresses
Конечно, можно отправить письмо, используя только BCC
так как это не является ограничением SMTP.
Это можно обойти?
7 ответов
Я думаю, что если вы закомментируете весь emailMessage.To.Add(sendTo);
линии, он отправит письмо с To
поле пустое.
Сделайте то же самое, что вы делаете для внутренних почтовых рассылок, когда вы не хотите, чтобы люди постоянно отвечали на все.
Отправьте его себе (или фиктивной учетной записи), затем добавьте свой список BCC.
Это даже не должен быть реальный адрес электронной почты, я обычно использую Mailer@CompanyName.com
за TO
, а также NoReply@CompanyName
за FROM
,
Вы должны указать адрес TO. Просто отправьте его на "нежелательный" адрес электронной почты, на который вы не возражаете.
Вы можете использовать временный поддельный адрес, а затем удалить его сразу после:
MailMessage msg = new MailMessage(from, "fake@example.com");
msg.To.Clear();
foreach (string email in bcc.Split(';').Select(x => x.Trim()).Where(x => x != ""))
{
msg.Bcc.Add(email);
}
Я думаю, что вы пытались сделать что-то вроде:
var msg = new MailMessage("no-reply@notreal.com", "");
Вот почему вы видели сообщение об ошибке.
Вместо этого попробуйте что-то вроде этого:
MailMessage msg = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.notreal.com");
msg.From = new MailAddress("no-reply@notreal.com");
//msg.To.Add("target@notreal.com"); <--not needed
msg.Bcc.Add("BCCtarget@notreal.com");
Должен иметь адрес. Так было с тех пор, как первоначальная реализация sendmail в 80-х годах и все почтовые программы SMTP, о которых я знаю, предъявляли одинаковые требования. Вы можете просто использовать фиктивный адрес для.