首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 發送郵件實戰(一):SmtpClient 與身份驗證完整示例

     編輯:關於C語言

網上常見代碼多缺少身份驗證,導致發送失敗。本文提供基於 System.Net.Mail 的完整發送模板,含 Gmail SSL 配置、異常處理、編碼設置等生產級細節。

錯誤示範(舊 API)

MailMessage msg = new MailMessage();
msg.From = "writer@sadf.com";
msg.To = "geter@dff.com";
msg.Subject = "測試";
msg.Body = "內容";
SmtpMail.SmtpServer = "smtp.xxx.com";
SmtpMail.Send(msg); // 無身份驗證,必失敗

正確示範(推薦 API)

string mailContent = "郵件內容";
MailMessage msg = new MailMessage();
msg.To.Add("to@gmail.com");
msg.From = new MailAddress("from@gmail.com", "發件人", Encoding.UTF8);
msg.Subject = "測試郵件";
msg.SubjectEncoding = Encoding.UTF8;
msg.Body = mailContent;
msg.BodyEncoding = Encoding.UTF8;
msg.IsBodyHtml = true;
msg.Priority = MailPriority.High;

SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("account@gmail.com", "password");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;

try
{
    client.Send(msg);
    MessageBox.Show("發送成功");
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message, "發送失敗");
}

關鍵點

  • 使用 System.Net.Mail 命名空間,System.Web.Mail 已棄用。
  • 發件人地址需與認證賬號一致,否則部分服務商拒絕。
  • 附件添加:msg.Attachments.Add(new Attachment(path));
  • 異步發送:client.SendAsync(msg, userState); 配合 SendCompleted 事件。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved