2007年3月6日 星期二

dotnet 2.0 的送信 API

.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 發信的,因此會失敗。

如果指定了帳號/密碼,則才會成功。

 

這對程式撰寫來說,真是麻煩。

 

沒有留言:

Share with Facebook