iT邦幫忙

1

gmail是否已經不能使用localhost發信?! (使用phpmailer)

因工作需要在本機方便測試,記得去年用localhost可以寄gmail

現在的設定如下:

  1. php 5.6
  2. 已開啟openssl
  3. gmail已啟用安全性較低的應用程式存取權
  4. 關閉所有防火牆(測試時)
//設定的code
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
$mail->Username = $mygmail;
$mail->Password = $mygmailpw;
//---以下略

失敗訊息
SMTP ERROR: Failed to connect to server: (0) SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

相同的code若放在雲端主機運作一切正常,請教這是不是哪邊出問題?

饅頭 iT邦新手 4 級 ‧ 2017-12-26 09:50:19 檢舉
我月初可以用(使用 python SMTP())
只是現在轉戰用 gmail api 了
低安全性應用程式 ? 可能要開一下
0
混水摸魚
iT邦研究生 4 級 ‧ 2017-12-26 10:59:19

程式碼給你參考:
https://www.webteach.tw/?p=1132

你說你有開openssl
那你有設好憑證嗎?不是有開就好,再來你也要打開443 465 port

0
tim_lai
iT邦新手 5 級 ‧ 2017-12-27 03:09:28

試試看PHPMailer 6.0.2 (https://github.com/PHPMailer/PHPMailer)

SSL或TLS都沒問題。

0
ak02
iT邦研究生 2 級 ‧ 2017-12-27 09:04:18

我也是相同狀況,
而且網路上也是有不少聲音,
不過我的系統是發送訂單通知,
後續我就改成用line來發送通知了。

0
sfwejfish
iT邦新手 5 級 ‧ 2017-12-27 09:37:43

如果您將PHPMailer的debug模式開到詳細以上的等級,應該會看到請使用瀏覽器開啟某某連結以繼續

表示除了低安全性之外,還要授權存取權限(這個動作在程式移動到新主機就要做一次)
https://accounts.google.com/b/0/DisplayUnlockCaptcha
在頭一次寄信之前進入授權頁面點下確認後再繼續進行送信操作即可

P.S.看您的code似乎PHPMailer版本很低,基於安全性的考量建議提升到5.2.22以上

0
elvisyip
iT邦新手 5 級 ‧ 2018-01-03 13:40:28

我也出現了同樣情況
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

phpmailer 版本是5.2.23

$mail = new PHPMailer();
$mail->SMTPDebug = 2;
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Username = "xxxx@gmail.com";
$mail->Password = "password";
$mail->From = "xxxx@gmail.com";
$mail->FromName = "username";
$mail->IsHTML(true);
$mail->Subject = "subject";
$mail->Body = "body";

$mail->Send();
0
b7307024
iT邦新手 4 級 ‧ 2018-02-01 14:11:22

可能要將google的"允許安全性較低的應用程式"開啟,路徑在我的帳戶→登入和安全性→具有帳戶存取權的應用程式,如下圖:
https://ithelp.ithome.com.tw/upload/images/20180201/20017294RFdzJRppSR.jpg

我要發表回答

立即登入回答