首頁 >後端開發 >php教程 >使用 PHP Mailer 透過 Gmail 的 SMTP 伺服器發送電子郵件時,為什麼會收到「需要 SMTP AUTH」錯誤?

使用 PHP Mailer 透過 Gmail 的 SMTP 伺服器發送電子郵件時,為什麼會收到「需要 SMTP AUTH」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-12-26 15:16:17519瀏覽

Why am I getting an

使用PHP Mailer 透過Gmail SMTP 伺服器發送電子郵件時遇到問題:「需要SMTP AUTH」錯誤

嘗試透過使用PHP Mailer的Gmail SMTP 伺服器,您可能會遇到錯誤,提示在連接埠587 上提交郵件需要SMTP 驗證。此問題可以解決透過實作下列步驟:

  1. 驗證 SMTP 驗證:
    確保 SMTPAuth 標誌在 PHP 郵件程式碼中設定為 true。這將允許在發送電子郵件之前進行身份驗證。
  2. 檢查網域限制:
    Gmail 需要網域限制以允許特定網域透過其 SMTP 伺服器傳送電子郵件。確保您的網域 (vatandesign.ir) 有權透過您正在使用的 Gmail 帳戶發送電子郵件。
  3. 更新 SMTP 安全標誌:
    將 $mail->SMTPSecure 標誌設定為「ssl」或'tls' 與 Gmail SMTP 伺服器建立安全連線。
  4. 檢查 SSL 可用性:
    確認 SMTP 伺服器您正在嘗試連線到支援 SSL 的連線。某些伺服器可能不支援 SSL 或 TLS。
  5. 停用兩步驟驗證:
    為了提高安全性,Google 實作了兩步驟驗證。停用您用於傳送電子郵件的 Gmail 帳戶的兩步驟驗證。
  6. 修改 SMTP 偵錯值:
    將 $mail->SMTPDebug 標誌設定為 1 或 2。這將啟用偵錯並提供詳細的錯誤訊息。
  7. 測試與故障排除:
    執行 PHP Mailer 程式碼並監視輸出。檢查錯誤訊息是否有任何問題或警告。
  8. 更新連接埠配置:
    將 $mail->Port 值變更為 465 或 587 進行實驗。不同的伺服器可能使用不同的連接埠。
  9. 聯絡您的 SMTP 伺服器:
    如果問題仍然存在,您可以考慮聯絡 SMTP伺服器提供者以取得進一步的資訊

範例工作程式碼:

修改後的範例程式碼可以幫助您解決問題:

$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
$mail->Host = "smtp.gmail.com";
$mail->Port = 465; // or 587
$mail->IsHTML(true);
$mail->Username = "[email protected]";
$mail->Password = "password";
$mail->SetFrom("[email protected]");
$mail->Subject = "Test";
$mail->Body = "hello";
$mail->AddAddress("[email protected]");

if (!$mail->Send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Message has been sent";
}

此程式碼有經過測試和驗證可以工作。透過實作這些建議,您應該能夠使用 PHP Mailer 透過 Gmail SMTP 伺服器成功傳送電子郵件。

以上是使用 PHP Mailer 透過 Gmail 的 SMTP 伺服器發送電子郵件時,為什麼會收到「需要 SMTP AUTH」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn