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

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

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

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

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

Ответ 1

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

Ответ 2

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

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

Ответ 3

Вы должны включить адрес TO. Просто отправьте его на "нежелательный" адрес электронной почты, на который вы не против получать почту.

Ответ 4

Это даже не обязательно настоящий адрес электронной почты, я обычно использую [email protected] для TO и [email protected] для FROM.

Ответ 5

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

Ответ 6

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

Ответ 7

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

MailMessage msg = new MailMessage(from, "[email protected]");
msg.To.Clear();
foreach (string email in bcc.Split(';').Select(x => x.Trim()).Where(x => x != ""))
{
     msg.Bcc.Add(email);
}