[C#]如何使用 Gmail 免費發信 (適用 2022/5/30 改版)
開發系統發信給客戶是很常見的功能,但是發信需要發信伺服器才可以運作,在企業內建議使用企業內部的發信伺服器,或是使用 Google Workspace (舊稱G Suite) 的服務來發信,這樣發信網域會保留企業網域,讓收信的客戶感受到正式的發信來源。
但如果只是需要臨時用的發信服務,可以使用 Gmail 的免費轉發服務,但是收信的網域就只能是 xxxxxx@gmail.com 網址。
這裡範例我會以免費的 Google STMP 發信做講解,Google 在 2022/5/30 已停用了「低安全性應用程式存取權」的機制,不能像過去允許低安全性存取就可以發信了,現在調高了安全性設定。
現在要透過 Google 免費發信,需要先開啟「兩步驟驗證」以及「應用程式密碼」才可以。
Contents
調整 Google 發信設定
首先開啟網頁 https://myaccount.google.com/u/0/security 在個人 Google 帳戶要先開啟「兩步驟驗證」,然後點擊「應用程式密碼」。
在「選取應用程式」選擇「郵件」,在「選取裝置」可選擇「其他」。
然後輸入自訂的名稱。
按下「產生」後就會產生一組「應用程式密碼」,此密碼會取代發信時個人 Gmail 帳號的密碼。
此密碼可以記下來,接著程式會用到。設定完成後就會建立一組密碼,你可以依不同功能建立多組密碼。
發信測試
接著可以輸入以下程式碼測試發信功能,其中需要把換上個人發信 Gmail 帳號以及剛剛產生的密碼。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// 使用 Google Mail Server 發信 string GoogleID = "xxxxx@gmail.com"; //Google 發信帳號 string TempPwd = "xxxxxxxxxxxxxxxx"; //應用程式密碼 string ReceiveMail = "xxxxx@yahoo.com.tw"; //接收信箱 string SmtpServer = "smtp.gmail.com"; int SmtpPort = 587; MailMessage mms = new MailMessage(); mms.From = new MailAddress(GoogleID); mms.Subject = "信件主題"; mms.Body = "信件內容"; mms.IsBodyHtml = true; mms.SubjectEncoding = Encoding.UTF8; mms.To.Add(new MailAddress(ReceiveMail)); using (SmtpClient client = new SmtpClient(SmtpServer, SmtpPort)) { client.EnableSsl = true; client.Credentials = new NetworkCredential(GoogleID, TempPwd);//寄信帳密 client.Send(mms); //寄出信件 } |
此段程式碼引用元件有 using System.Net.Mail; using System.Net;
。
資安小提醒:關於帳號密碼部份,建議存放在設定檔內,以利後續維護與調整。
祝福各位發信順利。
如果你在學習上有不懂的地方,需要諮詢服務,可以參考站長服務,我想辨法解決你的問題
如果文章內容有過時、不適用或錯誤的地方,幫我在下方留言通知我一下,謝謝
在安全性下的登入 Google 的方式中無“應用程式密碼”的選項