追蹤「需要 SMTP 驗證」錯誤:保護電子郵件連線
從應用程式發送電子郵件有時會導致錯誤:「SMTP 伺服器需要安全連線或用戶端未經過驗證。伺服器回應為:5.5.1 需要驗證。」這表示SMTP 伺服器拒絕未經驗證的連接或提供的憑證不正確。
解決此問題的方法如下:
啟用安全登入:Google 可能會阻止不符合目前安全標準的應用程式進行不安全登入嘗試。存取您的 Google 帳戶設定並啟用「安全性較低的應用程式存取」(或類似選項,取決於您的 Google 帳戶配置)。 注意:出於安全原因,通常不鼓勵這樣做。 考慮使用應用程式密碼(如果可用)。
驗證 SMTP 憑證: 仔細檢查您的 SMTP 憑證(使用者名稱、密碼和伺服器位址)的準確性。 確保這些設定與您的應用程式的配置精確匹配。
程式碼範例(具有安全性改善):
以下程式碼示範了安全電子郵件發送。 至關重要的是,它避免使用「安全性較低的應用程式存取」。 相反,它突出顯示使用應用程式密碼的首選方法(用您的實際憑證替換佔位符)。
<code class="language-csharp">MailMessage msg = new MailMessage(); msg.From = new MailAddress("mymailid@gmail.com"); msg.To.Add("receipientid@example.com"); msg.Subject = "test"; msg.Body = "Test Content"; msg.Priority = MailPriority.High; SmtpClient client = new SmtpClient(); // Use App Password here instead of your actual Gmail password client.Credentials = new NetworkCredential("mymailid@gmail.com", "YOUR_APP_PASSWORD"); client.Host = "smtp.gmail.com"; client.Port = 587; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.EnableSsl = true; client.UseDefaultCredentials = false; client.Send(msg);</code>
Web.config 設定(使用應用程式密碼):
同樣,更新您的 Web.config
檔案以使用應用程式密碼而不是常規密碼:
<code class="language-xml"><appSettings> <add key="smtpServer" value="smtp.gmail.com" /> <add key="EnableSsl" value="true" /> <add key="smtpPort" value="587" /> <add key="smtpUser" value="mymailid@gmail.com" /> <add key="smtpPass" value="YOUR_APP_PASSWORD" /> <!-- Use App Password here --> <add key="adminEmail" value="adminemail@example.com" /> </appSettings> <system.net> <mailSettings> <smtp from="mymailid@gmail.com"> <network enableSsl="true" host="smtp.gmail.com" password="YOUR_APP_PASSWORD" port="587" username="mymailid@gmail.com" /> <!-- Use App Password here --> </smtp> </mailSettings> </system.net></code>
透過實施這些安全配置,您將建立強大且受保護的 SMTP 連接,以實現可靠的電子郵件傳送。 請記住從您的 Google 帳戶安全設定中產生並使用應用程式密碼以增強安全性。
以上是需要 SMTP 身份驗證:如何修復「5.5.1 需要身份驗證」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!