Qdmailでは、1.1.3bよりSymfony対応となりました。
SYmfonyで簡単に携帯デコメ、添付ファイル、HTMLメールなど多彩なメールを送信することができます。
Symfonyでメールを送信する方法は大きく2つあります。(Symfony1.1.2にて動作確認)
1 ビューに送信を任す方法
2 コントローラーで送信する方法
いずれにせよ、何らかの形で、qdmail.phpをインクルードしてください。
また、それぞれのコントローラーに対応するビューも用意してください。
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
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()が必要です。
なんせ、コントローラーが送信する方法ですから。