QdmailをCakePHPで使う

標準で QdmailComponent が付属しているのですが、Cake 1.2 でそのまま使うには少々難があるので、継承して一部メソッドを書き換えたものを gist で公開しておきます。名前は QdmailerComponent です(CakePHP 1.2専用、qdmail.1.2.6b)。

2009-11-15 更新: さらに改良したものをリポジトリで公開しました。続・QdmailをCakePHPで使うを参照してください。

使い方

qdmail.php は verdors ディレクトリに置いて、上のコードを qdmailer.php として components ディレクトリに置いてください。あとは標準の QdmailComponent と同じです。

$this->Qdmailer->to('address@example.com', '日本語名');
$this->Qdmailer->subject('Qdmailerテスト');
$this->Qdmailer->from('from@example.com' , '配信元日本語名' );
$this->Qdmailer->cakeText('テンプレート使用テスト', 'test_template');
$this->Qdmailer->send();

主な変更点は

  • $is_qmail を明示的に設定(本当は Component のオプションで指定できるようにすべきだが)
  • View クラスの読み込み方法を EmailComponent と同一にした(ThemeView なども使用可能になった)
  • テンプレートファイルのエンコーディングが指定されなかった場合、自動判定するのでは無く App.encoding の値を使うようにした

半角カナを全角に変更

ちょっと反則気味ですがレイアウトファイル内で変換するのが一番楽な気がします。

<?php echo mb_convert_kana($content_for_layout, "KV"); ?>

One Response

  1. [...] 以前gistで公開したQdmailerコンポーネントですが、その後もいろいろ手を加えたい部分が出てきたので、正式にgithubにリポジトリを作成しました。 [...]

Leave a Reply