Отправка почты через SMTP в C # с использованием BCC без TO

StackOverflow https://stackoverflow.com/questions/302271

  •  08-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь использовать класс System.Net.Mail.MailMessage в C # для создания электронного письма, которое отправляется на список адресов электронной почты через BCC . Я не хочу включать адрес TO , но, похоже, я должен это сделать, потому что я получаю исключение, если использую пустую строку для адреса TO в MailMessage конструктор. Ошибка гласит:

ArgumentException
The parameter 'addresses' cannot be an empty string.
Parameter name: addresses

Конечно, можно отправить электронное письмо, используя только BCC , так как это не является ограничением SMTP.

Есть ли способ обойти это?

Это было полезно?

Решение

Я думаю, что если вы закомментируете всю строку emailMessage.To.Add (sendTo); , оно отправит письмо с пустым полем To .

Другие советы

Сделайте то же самое, что вы делаете для внутренних почтовых рассылок, когда вы не хотите, чтобы люди постоянно отвечали всем.

Отправьте его себе (или фиктивному аккаунту), а затем добавьте свой список BCC.

Вы должны указать адрес TO. Просто отправьте его на «мусор» адрес электронной почты, на который вы не возражаете.

Это даже не должен быть реальный адрес электронной почты, я обычно использую Mailer@CompanyName.com для TO и NoReply @ CompanyName для FROM .

Просто не вызывайте метод Add для свойства To.

Должен иметь адрес. Так было со времен первоначальной реализации sendmail в 80-х, и все почтовые программы SMTP, о которых я знаю, предъявляли одинаковые требования. Вы можете просто использовать фиктивный адрес для.

Вы можете использовать временный фальшивый адрес, а затем удалить его сразу после:

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");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top