2008-11-19 73 views
10

我試圖使用C#中的System.Net.Mail.MailMessage類創建一個電子郵件,通過BCC發送到一個電子郵件地址列表。我不想包含TO地址,但似乎我必須這樣做,因爲如果我在MailMessage構造函數中使用空字符串作爲TO地址,我會得到一個異常。該錯誤提示:在C#中使用BCC通過SMTP發送郵件

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

我不認爲你必須包含收件人地址。 – 2009-06-25 19:34:36

11

對內部郵件羣發做同樣的事情,你不希望人們隨時回覆所有內容。

自己發送(或虛擬賬戶),然後添加您的BCC列表。

1

只是不要調用To-property上的Add-method。

0

必須有一個地址。自從80年代的原始sendmail實現以及我知道的所有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); 
}