2008-11-19 8 views
10

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

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

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

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

+0

Я бы жаловаться MS об этом. Однако это не поможет вам в текущей ситуации. – Tim 2008-11-19 16:12:17

+1

Жаловаться всегда помогает. Это вызывает теплое чувство ненависти. – bzlm 2009-03-17 07:58:24

ответ

8

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

2

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

+0

Я не думаю, что вы должны включить To-address. – 2009-06-25 19:34:36

11

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

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

1

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

0

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

0

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

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); 
}