使用C#寄出Gmail信件

最後更新 2024-04-26 作者 Roy

當時還是菜鳥的我,進到公司後開發的第一個專案就是客服系統,因為當時客服部門是以Excel紀錄與客戶的對談內容,當換班時很容易疏忽紀錄或是交接不完全。
所以當時開發就需要有一個後台可以看到並結合官網的詢問表單做回覆,這時寄信的功能幾乎是必備的。
這篇會以C#示範寄到最常用也最方便的Gmail信箱,因為很多企業信箱都是使用Google的G Suite 服務,如果是其他家Mail server則smtp 必須修改成對應的。

首先要引入 System.Net.Mail

using System.Net.Mail;

填寫寄送資料, smtp主機填入mail server資料,下面範例是Gmail。

*2023/08/20更新:Google自 2022 年 5 月 30 日起已經停止「低安全性應用程式存取權」,所以密碼部分一律要改成應用程式密碼。

「Account」 、「password」 請更改成您的帳號密碼,如果有設兩步驟驗證登入,密碼直接改成應用程式密碼。

System.Net.Mail.SmtpClient MySmtp = new System.Net.Mail.SmtpClient("smtp.gmail.com", 587);
MySmtp.Credentials = new System.Net.NetworkCredential("Account", "password");
MySmtp.EnableSSl = true;
Mail Server SMTP Port
Yahoo smtp.mail.yahoo.com 587
Gmail smtp.gmail.com 587
Hotmail smtp.live.com 587

設定發送Email
mail.From的前面「From Email」是發信,後面的「From Email Title」是要顯示的名稱。
mail.To.Add 收信者Email
mail.Priority 設定優先權
mail.Subject 信件標題
mail.Body 信件內容,這邊可以另外開發成網頁形式置入
MySmtp.Send 將信件發送出去

MailMessage mail = new MailMessage();
mail.From = new MailAddress(From Email, "From Email Title");
mail.To.Add(To Email);
mail.Priority = MailPriority.Normal;
mail.Subject = "Mail Title"; 
mail.Body = content;

MySmtp.Send(mail);

完整程式碼範例

using System.Net.Mail;

System.Net.Mail.SmtpClient MySmtp = new System.Net.Mail.SmtpClient("smtp.gmail.com", 587);
MySmtp.Credentials = new System.Net.NetworkCredential("Account", "password");

MySmtp.EnableSsl = true;
MailMessage mail = new MailMessage();

mail.From = new MailAddress(From Email, "From Email Title");
mail.To.Add(To Email);
mail.Priority = MailPriority.Normal;
mail.Subject = "Mail Title"; 
mail.Body = content;

MySmtp.Send(mail);
Roy
關於作者 Roy

曾經北漂的工程師,現在專注於WordPress、.Net Core開發


發佈留言