首頁 >後端開發 >php教程 >為什麼我的 SwiftMailer 腳本無法透過 Gmail 傳送電子郵件?

為什麼我的 SwiftMailer 腳本無法透過 Gmail 傳送電子郵件?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-28 04:18:01810瀏覽

Why is My SwiftMailer Script Failing to Send Emails via Gmail?

使用PHP 的SwiftMailer 透過Gmail 發送電子郵件

嘗試使用具有Gmail 帳戶的SwiftMailer 向自身發送電子郵件時出現此問題。根據SwiftMailer的參考對腳本進行了修改,但沒有得到任何結果。

問題源自於以下行:

<code class="php">$result = $mailer->send($message);</code>

這行導致程式碼失敗,表示有問題發送訊息。可能是訊息沒有發送成功,導致程式崩潰。

腳本程式碼如下:

<code class="php">require_once '/var/www/swift/lib/swift_required.php';
echo 'Mail sent <br />';

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 587)
  ->setUsername('example@gmail.com')
  ->setPassword('password');

echo 'line 40 <br />';
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('Wonderful Subject')
  ->setFrom(array('example@gmail.com' => 'Evaluaciones'))
  ->setTo(array('example@gmail.com' => 'A name'))
  ->setBody('Test Message Body');

echo 'line 52 <br />';
$result = $mailer->send($message);
echo $result;
echo 'line 58 <br />';</code>

為了解決這個問題,程式碼修改為如下:

<code class="php">$transporter = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
  ->setUsername($this->username)
  ->setPassword($this->password);

$this->mailer = Swift_Mailer::newInstance($transporter);</code>

這解決了問題,允許訊息成功傳送。

以上是為什麼我的 SwiftMailer 腳本無法透過 Gmail 傳送電子郵件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn