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

 

<関連リンク>