【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の携帯の文字化けで嵌ったけど、これは大丈夫かな・・・。試してないけど・・・。
<関連リンク>