我關(guān)注使用 Gmail 與 XOAUTH2 (PHPMailer Wiki) 和如何使用 PHPMailer 與 Gmail XOAUTH2 發(fā)送電子郵件? (Chandan for w3jar.com;2019 年 5 月)。 < /p>
今天,我的網(wǎng)站無法發(fā)送電子郵件,因?yàn)樗⑿铝钆埔堰^期。
然後我再次閱讀 PHPMailer Wiki,發(fā)現(xiàn)了這個(gè):
所以,我需要前往此頁(yè)面並點(diǎn)擊 Google
。
然後選擇我將發(fā)送電子郵件的帳戶。
新令牌刷新將顯示如下。
之後,我需要複製此刷新令牌並將其貼上到我的發(fā)送電子郵件函數(shù)中。
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\OAuth; use League\OAuth2\Client\Provider\Google; function sendEmail($email, $title, $detail) { try { $refreshToken = 'I am here'; //////// I am hereeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee $mail = new PHPMailer(true); //Server settings $mail->*ANY*; //Create a new OAuth2 provider instance $provider = new Google([ 'clientId' => $clientId, 'clientSecret' => $clientSecret ]); //Pass the OAuth provider instance to PHPMailer $mail->setOAuth(new OAuth([ 'provider' => $provider, 'clientId' => $clientId, 'clientSecret' => $clientSecret, 'refreshToken' => $refreshToken, 'userName' => $senderEmail, ])); if ($mail->send()) return true; return false; } catch (\Throwable $th) { return null; } }
這就是令牌過期時(shí)我必須做的事情。
Gmail 沒有任何有關(guān)刷新令牌過期的通知。
這給使用我網(wǎng)站的人帶來了問題。直到有人聯(lián)絡(luò)我告訴我這個(gè)問題。
如何自動(dòng)取得刷新令牌?
此步驟需要有人點(diǎn)擊 Google
按鈕,然後點(diǎn)擊 Gmail 帳戶以取得刷新令牌。
用 PHP 可以嗎?如何自動(dòng)化流程?
最後,我使用兩步驟驗(yàn)證。 參考:https://www.youtube.com/watch?v= mte7LroYd74&list=LL&index=1&t=2s