我試圖添加多個來解決這個問題。在MailAddress構造函數中的多個地址
MailAddress mailAddressTo = new MailAddress("[email protected];[email protected]","Vetrivelmp");
但拋出像
An invalid character was found in the mail header: ';'
我試圖添加多個來解決這個問題。在MailAddress構造函數中的多個地址
MailAddress mailAddressTo = new MailAddress("[email protected];[email protected]","Vetrivelmp");
但拋出像
An invalid character was found in the mail header: ';'
錯誤,您不能使用MailAddress
構造函數指定多個收據,但你必須使用MailMessage
對象表現出以下
...
MailMessage mail = new MailMessage();
mail.To.Add("[email protected],[email protected],[email protected]");
...
另一種方式是:
MailMessage msg = new MailMessage();
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
msg.To.Add("[email protected]");
可能存在您爲什麼想要這樣做的問題?類似MailMessage.To
的是MailAddressCollection
,它的Add
方法被重載以在字符串中攜帶多個電子郵件地址,並以逗號分隔(請參閱http://msdn.microsoft.com/en-us/library/ms144695.aspx)。
MailAddress對象的常用用途是將它們添加到電子郵件中,如果您有多個地址,那麼我假設您想將它們添加到To,CC等字段之一,在這種情況下,Add overload應該你很好。如果還有別的東西,那麼你將不得不爲你正在嘗試做的事情提供更多的背景。
原因是我有預定義的代碼,我不應該改變。那麼是否可以在mailaddress consturctor中添加多個ID? – 2012-03-16 11:21:29
不,你不能。一個MailAddress對象用於單個郵件地址。 http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress.aspx是應該有希望回答關於該對象的任何其他問題的文檔。 – Chris 2012-03-16 11:25:53
實際上,分號不是有效的分隔符。不幸的是,MSDN沒有記錄這一點,不得不自己找出這個。
如果您想添加更多地址,請用逗號分隔。該空間將劃分顯示名稱和電子郵件地址。 「目標」 屬性接受以下格式:
等等
我寫了更多關於這個話題in this blog post
在你的最後一個例子中,「name [email protected],[email protected]」,MailMessage將我作爲「姓名郵件」做的一個測試解釋爲電子郵件前綴。我必須這樣做:'「亞當米勒<[email protected]>」' – 2015-05-28 18:40:52
@Tschareck
「逗號用於分隔郵件地址列表中的元素。因此,不應將逗號用於列表中未加引號的顯示名稱。下面的郵件地址將被允許」在http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress.aspx
最好的問候, Anarud
使用逗號(,)作爲分隔符,而不是分號(;)。
如果多封用地址參數傳遞用分號字符(「;」)分隔的郵件地址,引發FormatException異常。
實例的工作
MailAddressCollection.Add(字符串):
using (MailMessage msg = new MailMessage())
{
...
msg.To.Add("[email protected], [email protected]");
...
}
MailAddressCollection.Add(MailAddress):
using (MailMessage msg = new MailMessage())
{
...
msg.To.Add(new MailAddress("[email protected]", "Vetrivelmp"));
msg.To.Add(new MailAddress("[email protected]", "Vetrivelmp1"));
...
}
這是對我工作。
MailMessage m_message = new MailMessage();
string m_addys = "[email protected],[email protected]";
m_message.To.Add(m_addys);
這並不符合你的想法。這隻會將電子郵件發送到[email protected],並且此人的姓名將顯示爲[email protected] – 2018-01-23 23:28:39
您是對的。它應該是這樣的:「addy2 @ foo.com,addy1 @ foo.com」。它是一個不是MailAddress的字符串。 – smoore4 2018-01-24 13:10:02
下面是關於這一主題的另一種變體,FWIW:
SenderEmail = "[email protected]";
RecipientEmail = "[email protected], [email protected], [email protected]";
MailMessage msg = new MailMessage(SenderEmail, RecipientEmail);
注意逗號。更多詳細信息請參見MSDN here。
bw礦和你的有什麼不同? – 2012-03-16 11:12:02
看到我知道這個,但如何在構造函數本身設置? – 2012-03-16 11:13:19
他有一個MailMessage對象作爲開始。我在我的回答中實際上已經解釋了這一點。簡單的答案是'mail.To'是一個允許多個電子郵件地址的'MailAddressCollection'。 'MailAddress'只能保存一個地址(它的單數可以幫助你記住這一點)。 – Chris 2012-03-16 11:14:54