ZendFrameworkではメール送信のコンポーネントもあります。
require_once 'Zend/Mail.php';
$mail = new Zend_Mail('ISO-2022-JP');
$mail->setFrom('test@testtttttttt.com', 'テスト');
$mail->addTo('send@testtttttttt.com', '受信者');
$mail->setSubject('テストで送る');
$mail->setBodyText('テストテスト');
$mail->send();
これで送信したメールをOutlookで受信すると差出人が化けます。
というか、エンコードデータがそのままデコードされずに表示されます。
これの原因がサンプルの最初に読み込んでいるMail.phpにあります。
setFromメソッド内の_storeHeaderを呼び出してる箇所を下記のように修正します。
/*
$this->_storeHeader(
'From'
, $this->_encodeHeader('"'.$name.'"').' <' . $email . '>'
, true);
*/
$this->_storeHeader(
'From'
, '"' . $this->_encodeHeader($name).'"<'.$email.'>'
, true);
最近ZendFrameworkを基本から始めようと思い入門書を購入
買ったのは↓
- PHPフレームワーク Zend Framework入門/藤野 真吾
- ¥2,919
- Amazon.co.jp
感想と致しましては、PHPでのMVCを経験が無い方には、簡単に書かれていてわかり易いかと思います。
ある程度MVC等は理解していたり、他のフレームワークからの乗り換えであるのならWEB上の情報で事が足りるのかと思います。
で、この本にも今回のメール送信のバグについては記載されてました。
最初から買っておけば・・・。w