Pages

2009-10-16

容易引起例外的MailAddressCollection.Add()參數

在ASP.NET 3.5中,要寄發Email,就是用System.Net.Mail.MailMessage物件來構成Email主體
在處理收件人中,MailMessage.To.Add()的參數可以是一個MailAddress物件,
也可以是一個以逗號隔開的Email List String.

這一個多人地址的分隔字串,在.NET舊版本有以分號(;)隔開,也有以逗號(,)
也可以使用: MailMessage.To.Add(“DisplayName <user@test.com>");

當郵址分割字元不合規定時,寄信時會出現Error: Recipient unknown例外
Mail Address字串格式不對或有空白,也會引起例外,
有很大理由要用一個處理函數來一致化user輸入的多人郵址字串。

我寫了一個這樣萬用的函式,且相同位址不會重複加入(注意\r\n\t等字元):
int count = AddMailAddresses(msg.To, "User1 <user1@test.com>, xxx; user2@test.com, ”);  // count=2
int count = AddMailAddresses(msg.To, "User1 <user1@test.com>, xxx; user2@test.com, ", ",;|".ToArray());  // count=2

No comments: