這幾天因為將網站更換主機,主機位置從台灣更換到日本,結果下場就是裡面的一支利用 phpMailer 套件來發送 Gmail 信件的功能完全失效。後來推測,應該是因為登入者突然從台灣跑到日本,Google怕帳號擁有者被入侵,所以一直不讓我那遠在日本主機裡的小程式能夠成功發送信件
將phpMailer中的SMTPDebug設定為4,可以看到…
SMTP -> ERROR: Password not accepted from server
事實上,密碼我確定是對的,完全就是Google基於安全性而封鎖我發信的動作罷了。
上網查了很多資料,大多叫你把「低安全性」的功能給打開,而且「兩步驟驗證」功能也千萬不要打開。是的,我都有做到,但都還是不行。超苦惱,後來爬了整整兩天的文,終於找到一篇文章:
這篇文章提到,就算上述的設定都做到了,Google可能還是會認為你短時間內突然從台灣跑到日本是不可能的事。因此認定你為不合法的伺服器。
透過這個網址 https://accounts.google.com/b/0/DisplayUnlockCaptcha 就可以讓Google暫時先清除這個認定。清除之後,請馬上用新的伺服器上的發信軟體,再發送一次。Google就會重新去判定,認為日本的主機才是正確的。
這邊要注意,這個網址進入後,並不像其他Google服務一樣,可以選擇要使用哪個「Google 帳戶」來執行。而我的Chrome上同時有很多個帳號在使用。所以我根本不曉得他清楚的是哪個帳號的設定。建議從無痕模式去重新登入你要清除設定的帳號,然後執行清除設定的動作。
記得,清除完後馬上去發送信件。
完成