Symfonyで日本語メール送信(携帯デコメもOK)
2008/09/25
SYmfonyで簡単に携帯デコメ、添付ファイル、HTMLメールなど多彩なメールを送信することができます。
2つの送信方法
Symfonyでメールを送信する方法は大きく2つあります。(Symfony1.1.2にて動作確認)1 ビューに送信を任す方法
2 コントローラーで送信する方法
いずれにせよ、何らかの形で、qdmail.phpをインクルードしてください。
また、それぞれのコントローラーに対応するビューも用意してください。
1 ビューに送信を任す方法
include('qdmail.php'); class mymoduleActions extends sfActions { public function executeSendEmail() { $this->sendEmail('mymodule', 'SendQd'); } public function executeSendQd() { $mail = new sfQdmail(); $mail -> addAddress('address@example.com','日本語宛先'); $mail -> setFrom('from@example.com','日本語フロム'); $mail -> setSubject('test Symfony'); $mail -> setMailer('mail'); $this->mail = $mail; $this->mytext = 'Text example'; } }この方式の場合、$mail->send()をつけてはいけませんので、注意してください。
だって、ビューに送信をお任せするわけですから。
SendQdに対応するテンプレートをご用意下さい。それがメール本文となります。
使い方は、sfMailと全く同じです。(いくつか使えないメソッドはありますが)
なお、以下のコンフィグファイルに、デフォルト設定が入っています。
sf_sandbox\data\symfony\config\mailer.yml
default: deliver: on mailer: mail domain: localhost.localdomain hostname: localhost port: 25 username: '' password: '' wordwrap: 80 .headers: priority: 3 content_type: text/plain charset: utf-8 encoding: 8bit
2 コントローラーで送信する方法
include('qdmail.php'); class mymoduleActions extends sfActions public function executeSendEmail() { $mail = new sfQdmail(); $mail -> addAddress('address@example.com','日本語宛先'); $mail -> setFrom('from@example.com','日本語フロム'); $mail -> setSubject('test Symfony'); $mail -> setMailer('sendmail'); $content = $this->getPresentationFor('mymodule','content'); $mail -> html($content); $mail -> send(); } public function executeContent() { $this->mytext = 'Text example'; } }この方式の場合は、 ->send()が必要です。
なんせ、コントローラーが送信する方法ですから。