Zend_Mail 支援純文字、HTML、MIME 多段郵件,可透過 Zend_Mail_Transport_Sendmail 或 Smtp 發送。本文示範 SMTP 發送驗證信、Base64 編碼解決中文標題亂碼、Gmail SSL 實戰配置。
$mail = new Zend_Mail('UTF-8');
$mail->setBodyText('郵件內容')
->setFrom('from@example.com', '寄件者')
->addTo('to@example.com', '收件者')
->setSubject('=?UTF-8?B?'.base64_encode('中文標題').'?=')
->send();
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 顯示亂碼。setBodyHtml() 直接支援 HTML,無需手動構建 MIME。addAttachment()、多次 addTo()/addCc()/addBcc()。Zend_Mail 封裝完善,配合正確編碼與 SMTP 設定,即可穩定發送各類驗證、通知郵件。