Я пытаюсь использовать класс System.Net.Mail.MailMessage в C# для создания электронного письма, которое отправляется на список адресов электронной почты через BCC. Я не хочу включать адрес TO, но кажется, что должен, потому что получаю исключение, если использую пустую строку для адреса TO в конструкторе MailMessage. В сообщении об ошибке говорится:
ArgumentException
The parameter 'addresses' cannot be an empty string.
Parameter name: addresses
Конечно, можно отправить электронное письмо, используя только BCC, поскольку это не ограничение SMTP.
Это можно обойти?
Жалобы всегда помогают. Это вызывает теплое чувство ненависти.





Вы должны указать адрес TO. Просто отправьте его на «нежелательный» адрес электронной почты, на который вы не против получать почту.
Я не думаю, что вам нужно указывать адрес получателя.
Сделайте то же самое, что и для рассылки внутренней почты, когда вы не хотите, чтобы люди все время отвечали всем.
Отправьте его к самостоятельно (или фиктивную учетную запись), затем добавьте свой список BCC.
Это даже не обязательно должен быть реальный адрес электронной почты, я обычно использую [email protected] для TO и NoReply@CompanyName для FROM.
Я думаю, если вы закомментируете всю строку emailMessage.To.Add(sendTo);, он отправит электронное письмо с пустым полем To.
Только не вызывайте метод Add для свойства To.
Придется заняться. Так было с тех пор, как исходный sendmail был реализован в 80-х годах, и все почтовые программы SMTP, о которых я знаю, предъявляли те же требования. Вы можете просто использовать фиктивный адрес для.
Вы можете использовать временный поддельный адрес, а затем удалить его сразу после:
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);
}
Я думаю, вы пытались сделать что-то вроде:
var msg = new MailMessage("[email protected]", "");
Вот почему вы видели сообщение об ошибке.
Вместо этого попробуйте что-нибудь вроде этого:
MailMessage msg = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.notreal.com");
msg.From = new MailAddress("[email protected]");
//msg.To.Add("[email protected]"); <--not needed
msg.Bcc.Add("[email protected]");
Я пожалуюсь на это М.С. Но в нынешней ситуации это не поможет.