利用本機SMTP將信件寄出

  • 10310
  • 0

利用本機SMTP將信件寄出

參考了藍色小舖資料後

郵件發送問題

小小改寫一下

利用本機SMTP將信件寄出到指定的信箱。

函式說明:

利用本機SMTP寄送郵件

  1.         /// <summary>  
  2.         /// 利用伺服器SMTP寄送郵件  
  3.         ///   
  4.         /// </summary>  
  5.         /// <param name="MailServer">The mail server.</param>  
  6.         /// <param name="Account">The account.</param>  
  7.         /// <param name="Password">The password.</param>  
  8.         /// <param name="FromMailAddress">From mail address.</param>  
  9.         /// <param name="toMailAddress">To mail address.</param>  
  10.         /// <param name="subject">The subject.</param>  
  11.         /// <param name="body">The body.</param>  
  12.         public static void SendMail(string FromMailAddress, string toMailAddress, string subject, string body)  
  13.         {  
  14.  
  15.             System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("LocalHost");  
  16.             //指定 Smtp 伺服器  
  17.             smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;  
  18.             //指定外送電子郵件的處理方式  
  19.             smtp.Credentials = new System.Net.NetworkCredential("","");  
  20.             //利用帳號/密碼取得 Smtp 伺服器的憑證  
  21.             System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();  
  22.             //要發送的訊息  
  23.             msg.SubjectEncoding = System.Text.Encoding.Default;  
  24.             //主旨的編碼方式  
  25.             msg.BodyEncoding = System.Text.Encoding.Default;  
  26.             //訊息主體(郵件內容)的編碼方式  
  27.             msg.IsBodyHtml = false;  
  28.             //訊息主體(郵件內容)不要以 HTML 的方式呈現  
  29.             msg.From = new System.Net.Mail.MailAddress(FromMailAddress);  
  30.             //寄件者  
  31.             msg.To.Add(new System.Net.Mail.MailAddress(toMailAddress));  
  32.             //收件者  
  33.             msg.Subject = subject;  
  34.             //主旨  
  35.             msg.Body = body;  
  36.             //訊息主體(郵件內容)  
  37.             smtp.Send(msg);  
  38.             //發送 e-mail  
  39.             msg.Dispose();  
  40.             //釋放訊息所佔用的記憶體  
  41.         } 

 

函式用法:

public static void SendMail(string FromMailAddress, string toMailAddress, string subject, string body)

C#:

  1. using System.Text;// StringBuilder要引用  
  2.  
  3. protected void Button1_Click(object sender, EventArgs e)  
  4.  
  5. {  
  6.  
  7. string subject = "TestEmail";  
  8.  
  9. string body = string.Empty;  
  10.  
  11. StringBuilder sb = new StringBuilder();  
  12.  
  13. sb.AppendLine("This is test mail");  
  14.  
  15. sb.AppendLine("Good Job!");  
  16.  
  17. body = sb.ToString();  
  18.  
  19. MailUtility.SendMail("aaa@www.com.tw", "ccc@ddd.com.tw", subject , body);  
  20.  
  21. //寄件者信箱 aaa@www.com.tw  
  22.  
  23. //收件者信箱 ccc@ddd.com.tw  
  24.  
  25. //主旨 TestEmail  
  26.  
  27. //內容 This is test mail  
  28.  
  29. //        Good Job!  
  30.  

VB:

 

  1. Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)  
  2.  
  3. Dim subject As String = "TestEmail" 
  4.  
  5. Dim body As String = String.Empty  
  6.  
  7. Dim sb As New StringBuilder()  
  8.  
  9. sb.AppendLine("This is test mail")  
  10.  
  11. sb.AppendLine("Good Job!")  
  12.  
  13. body = sb.ToString()  
  14.  
  15. MailUtility.SendMail("aaa@www.com.tw", “ccc@ddd.com.tw”, subject, body)  
  16.  
  17. '寄件者信箱 aaa@www.com.tw  
  18.  
  19. '收件者信箱 ccc@ddd.com.tw  
  20.  
  21. '主旨 TestEmail  
  22.  
  23. '內容 This is test mail  
  24.  
  25. ' Good Job!  
  26.  
  27. End Sub 

 

注意事項:

當畫面出現下列訊息

clip_image002

表示伺服器沒有開SMTP或者防火牆有檔,請去開啟服務

clip_image004

或者修改郵件伺服器主機。

System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("LocalHost");

//指定 Smtp 伺服器為本機由於沒有提供SMTP所以會出現上列錯誤訊息

此外,需要確認smtp內容

clip_image006

轉接限制

clip_image008

clip_image010