※ 引述《rjackie (向前走,才知道轉角)》之銘言:
: 各位大大,小弟有一個小問題
: 因專案中有遇到PHPMailer+gmail發信的功能,在本機上可以正常的
: 發信,但是不知道為什麼上傳到客戶的主機就會發生
: Mailer Error: SMTP connect() failed.
: https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
: 的錯誤,以下是程式碼還請各位能解惑
: ?>
: require_once('PHPMailer/PHPMailerAutoload.php');
: $mail= new PHPMailer();
: $mail->Host = "ssl://smtp.gmail.com";
: $mail->IsSMTP();
: $mail->SMTPAuth = true;
: $mail->SMTPSecure = "ssl";
: $mail->Port = 465;
: $mail->Username = "[email protected]";
: $mail->Password = "XXXXXXXX";
今天也遇到同樣的問題,已解決
我是先在自己電腦上測試,
本來沒辦法寄出,
到gmail帳號的「安全性」頁面把「低安全性應用程式存取權」設為「開啟」就可以了
不過同樣的程式上傳到伺服器之後卻無法順利寄出,
按大家推文的說法,打電話填客服單給伺服器廠商,請求開防火牆的設定
防火牆權限開完之後,信件還是無法寄出,不過錯誤訊息有一些不同,
依著下面的網址去做帳號權限的設定就可以了,
包括:「啟用兩步驟驗證功能」,以及最重要最關鍵的「產生及使用應用程式密碼」
https://support.google.com/accounts/answer/185833?
hl=zh-Hant&ctx=ch_DisplayUnlockCaptcha
我們必須去產生一組「16位數代碼」,然後套入到這個Password變數(Username不變),
然後信就順利寄出了^^
感恩
: $mail->CharSet = "utf-8";
: $mail->From = "[email protected]";
: $mail->FromName = "Aidec";
: $mail->AddAddress("[email protected]", "我是收件人");
: $mail->IsHTML(true);
: $mail->Subject = "主題-測試郵件";
: $mail->Body ="內容-測試test123";
: $mail->AltBody = '當收件人的電子信箱不支援html時,會顯示這串~~';
: if(!$mail->send()) {
: echo '信件發送失敗!!';
: echo 'Mailer Error: ' . $mail->ErrorInfo;
: } else {
: echo '信件已發送!!';
: }
: ?>
: 感謝