【PHP】Zend_Mailを使ってメールを送信する(SMTP)(日本語対応)
前はZend_Mailを使ってメールを受信する方法。今度はメールを送信してみたときのメモ。
Zend Frameworkのバージョンは1.9.2
サンプルコードは次のような感じ。そのまま貼り付けているので、各メソッドに渡すパラメータは適宜書き換える必要有り。基本は公式ドキュメントを参考に。
require_once('Zend/Mail.php');
$objMail = new Zend_Mail('ISO-2022-JP');
$objMail->setFrom($aMail['from']['address']);
$objMail->addTo($aMail['to']['address']);
foreach ($aMail['cc'] as $aItem) {
$objMail->addCc($aItem['address']);
}
foreach ($aMail['bcc'] as $aItem) {
$objMail->addBcc($aItem['address']);
}
$objMail->setSubject(MailUtil::getEncodeString($aMail['subject']));
$objMail->setBodyText(MailUtil::getEncodeString($aMail['body']));
$objMail->send();class MailUtil
{
/**
* メール送信用にISO-2022-JPエンコードする
*
* @param string $sString エンコード文字列
* @param string $sFromEncode 元の文字コード
* @return string エンコードした結果
*/
public static function getEncodeString($sString, $sFromEncode='UTF-8')
{
if (strlen($sFromEncode) == 0) {
$sFromEncode = 'UTF-8';
}
return mb_convert_encoding($sString, 'ISO-2022-JP', $sFromEncode);
}
}
.NETで送信したときはAUの携帯の文字化けで嵌ったけど、これは大丈夫かな・・・。試してないけど・・・。
<関連リンク>