首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

Zend Framework Zend_Mail 發送郵件驗證與標題亂碼解決方案

     編輯:PHP 相關知識

Zend Framework Zend_Mail 發送郵件驗證與標題亂碼解決方案

Zend_Mail 支援純文字、HTML、MIME 多段郵件,可透過 Zend_Mail_Transport_Sendmail 或 Smtp 發送。本文示範 SMTP 發送驗證信、Base64 編碼解決中文標題亂碼、Gmail SSL 實戰配置。

最簡單發送(Sendmail)

$mail = new Zend_Mail('UTF-8');
$mail->setBodyText('郵件內容')
     ->setFrom('from@example.com', '寄件者')
     ->addTo('to@example.com', '收件者')
     ->setSubject('=?UTF-8?B?'.base64_encode('中文標題').'?=')
     ->send();

SMTP 發送完整範例(Gmail SSL)

require_once 'Zend/Mail.php';
require_once 'Zend/Mail/Transport/Smtp.php';

$mail = new Zend_Mail('UTF-8');
$config = array(
    'auth'     => 'login',
    'username' => 'your@gmail.com',
    'password' => '應用程式密碼', // 非登入密碼
    'ssl'      => 'ssl'
);
$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
$mail->setDefaultTransport($transport);

$mail->setBodyHtml('HTML 內容...<a href="#">啟用帳號</a>')
     ->setFrom('your@gmail.com', '系統名稱')
     ->addTo($userEmail, $userName)
     ->setSubject('=?UTF-8?B?'.base64_encode('用戶 '.$userName.' 您好,驗證郵件').'?=')
     ->send();

關鍵點總結

  • 標題編碼: 必須使用 =?UTF-8?B?base64內容?= 格式(RFC 2047),否則中文標題在 Outlook/Gmail 顯示亂碼。
  • Gmail 密碼: 必須開啟「兩步驟驗證」並產生「應用程式密碼」,直接用登入密碼會認證失敗。
  • HTML 郵件: setBodyHtml() 直接支援 HTML,無需手動構建 MIME。
  • 附件/多收件者: addAttachment()、多次 addTo()/addCc()/addBcc()。

Zend_Mail 封裝完善,配合正確編碼與 SMTP 設定,即可穩定發送各類驗證、通知郵件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved