Я пытаюсь использовать класс 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
Это даже не обязательно настоящий адрес электронной почты, я обычно использую Mailer@CompanyName.com
для TO
и NoReply@CompanyName
для FROM
.
Ответ 5
Просто не вызывайте Add-метод для свойства To.
Ответ 6
Должен иметь адрес. Это было так, поскольку исходный sendmail в 80-х годах и все почтовые программы SMTP, я знаю, имеют такое же требование. Вы можете использовать только фиктивный адрес.
Ответ 7
Вы можете использовать временный поддельный адрес, а затем удалить его сразу после:
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);
}