在 .net 2.0 時,送信的 api 已經正式與 System.Web 分開了
程式碼如下
using System.Net.Mail;
MailAddress toAddress = new MailAddress(To);
MailAddress fromAddress = new MailAddress(From);
MailAddressCollection msgCollection = new MailAddressCollection();
msgCollection.Add(toAddress);
MailMessage message = new MailMessage(fromAddress, toAddress);
SmtpClient smtp = new SmtpClient("srkm");
smtp.UseDefaultCredentials = true;
//smtp.UseDefaultCredentials = false;
//smtp.Credentials = new System.Net.NetworkCredential("bankpro\\charles", "password");
//smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Send(message);
發信時,可以使用 authenticate 的帳號,密碼。(使用 NetworkCredential)
如果要用登入 windows 的帳號,則只需將 UseDefaultCredentials 設為 true 即可 (如範例)
有一點需注意。如果有裝 Symantec Client Security,則使用 default credential 發信大概會失敗。此時需裝
Internet e-mail auto protect 模組關閉,才會正常。
這可能是 Symantec 攔截到 mail,掃毒完後,無法再以 default credential 發信的,因此會失敗。
如果指定了帳號/密碼,則才會成功。
這對程式撰寫來說,真是麻煩。
沒有留言:
張貼留言