使用「Gmail」藉由「SMTP Sever」寄信
一、開發環境
- 整合開發環境:Visual Studio 2019
- 語言:C#
- .net framework:4.6.2
二、允許低安全性應用程式
要使用 Gmail 寄信,需啟用允許低安全性應用程式
- 未啟用 允許低安全性應用程式 會發生底下錯誤
SMTP 伺服器需要安全連接,或用戶端未經驗證。 伺服器回應為: 5.7.0 Authentication Required. Learn more at
圖、SMTP 伺服器需要安全連接,或用戶端未經驗證
- 啟用允許低安全性應用程式
圖、登入Gmail > 按下 管理你的 Google 帳戶 > 進入 Google Console 頁面
圖、按下 安全性 > 按下 開請存取權(不建議)
圖、啟用 允許低安全性應用程式
三、寄信範例
原始碼 c#
try
{
//smtp.gmail.com 為 Google 的SMTP Server,587 Port
using (var smtp = new SmtpClient("smtp.gmail.com", 587))
using (var mail = new MailMessage())
{
mail.From = new MailAddress("你的Gmail");
mail.To.Add("寄到哪個Gmail");
mail.Subject = "主旨";
mail.Body = "信件內容";
//啟用 Html
mail.IsBodyHtml = true;
smtp.Credentials = new NetworkCredential("你的Gmail", "你的Gmail密碼");
smtp.EnableSsl = true;
smtp.Send(mail);
}
return "Ok";
}
catch (Exception e)
{
return "false";
}
圖、執行後結果
四、Web.config Smtp 設定
為了簡化原始碼的撰寫,可以考慮將SMTP設定移至Web.config
- Web.config
<configuration>
...
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="你的Gmail">
<network defaultCredentials="false"
enableSsl="true"
host="smtp.gmail.com"
port="587"
userName="你的Gmail"
password="你的Gmail密碼" />
</smtp>
</mailSettings>
</system.net>
</configuration>
- 原始碼 c#
try
{
using (var smtp = new SmtpClient())
using (var mail = new MailMessage())
{
mail.From = new MailAddress("你的Gmail");
mail.To.Add("寄到哪個Gmail");
mail.Subject = "Test Subject";
mail.Body = "<p>Test Body</p>";
mail.IsBodyHtml = true;
smtp.Send(mail);
}
return "Ok";
}
catch (Exception e)
{
return "false";
}
圖、執行後結果
留言
張貼留言