2017-04-03 164 views
0

我試圖從我的本地主機使用我的Gmail帳戶發送電子郵件。 我也嘗試在網上甚至在本網站上找到答案,但沒有任何幫助。我正在使用XAMPP。PHPMailer錯誤使用GMAIL:郵件錯誤:SMTP連接()

這是代碼:

require 'PHPMailer-master/PHPMailerAutoload.php'; 

$mail = new PHPMailer();   // create a new object 
$mail->IsSMTP();     // enable SMTP 
$mail->SMTPDebug = 2;   // 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 = "myUserPass"; 
$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"; 
} 

完整的錯誤,我得到:

2017-04-03 10:33:15 SERVER -> CLIENT: 220 smtp.gmail.com ESMTP p7sm17594308wrc.19 - gsmtp 2017-04-03 10:33:15 CLIENT -> SERVER: EHLO localhost 2017-04-03 10:33:15 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [46.117.89.127] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 2017-04-03 10:33:15 CLIENT -> SERVER: AUTH LOGIN 2017-04-03 10:33:15 SERVER -> CLIENT: 334 VXNlcm5hbWU6 2017-04-03 10:33:15 CLIENT -> SERVER: bXlVc2VyQGdtYWlsLmNvbQ== 2017-04-03 10:33:15 SERVER -> CLIENT: 334 UGFzc3dvcmQ6 2017-04-03 10:33:15 CLIENT -> SERVER: bXlVc2VyUGFzcw== 2017-04-03 10:33:15 SERVER -> CLIENT: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials p7sm17594308wrc.19 - gsmtp 2017-04-03 10:33:15 SMTP ERROR: Password command failed: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials p7sm17594308wrc.19 - gsmtp 2017-04-03 10:33:15 SMTP Error: Could not authenticate. 2017-04-03 10:33:15 CLIENT -> SERVER: QUIT 2017-04-03 10:33:16 SERVER -> CLIENT: 221 2.0.0 closing connection p7sm17594308wrc.19 - gsmtp 2017-04-03 10:33:16 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

我試圖刪除:

$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail 

或更改端口25/587但它沒有幫助。 有人知道如何解決這個問題嗎?

+0

設置'$ mail-> SMTPDebug = 1'它會給出錯誤號,這會幫助你調試 –

+0

不會的。 '$ mail-> SMTPDebug = 2'顯示服務器端錯誤,OP已經做了。 – Synchro

+0

閱讀Google鏈接以及錯誤消息鏈接的故障排除指南。另外,在發佈之前進行搜索 - 這已被多次詢問。 – Synchro

回答

1

假設您輸入的用戶名和密碼正確,您需要授權外部應用程序使用gmail。

執行以下步驟,並授權使其:

  1. 首先,去你Google Account Management page
  2. Connected apps & sites,單擊Allow less secure apps: ON

如果它不一樣,如果工作,你的Gmail帳戶啓用了兩步驗證,use an auto-generated password

更新:

雖然轉向Allow less secure apps: ON可能解決您的問題,它應該被視爲一個故障排除提示,而不是作爲最終的解決方案。

+0

非常感謝! – Orih90

+0

這將「解決」報告的問題,但不需要禁用安全的應用程序以將PHPMailer與Gmail一起使用。閱讀文檔。 – Synchro

+1

@Synchro只是說'閱讀文檔'並不能幫助任何人改進答案,gmail文檔可以說是禁用安全應用程序作爲疑難解答提示。 https://support.google.com/mail/answer/7126229?visit_id=1-636268261334269899-3579076150&rd=1#cantsignin –

相關問題