header image

Ryuzeeについて

mixi Twitter Twitter

携帯対応

QRコード

RING

人気ブログランキング

新着記事

5月 21st, 2009 PHP none Comments

今cakephpで作っているシステムにはメール送信処理があるんだけど、そこで初めてオープンソースのメール送信ライブラリであるQdmailを使ってみた。
Qdmailは以下のような特徴をもつライブラリで純国産オープンソースライブラリ(MITライセンス)。

Qdmailとは、PHPのマルチバイト環境(特に日本語)にて、「文字化けしない」「簡単に"デコメ(デコメール)"やHTMLメール等の電子メールを送信することができる」メールクラスライブラリです。文字化け完全制覇を目指しています。
CakePHPのコンポーネントとしても動作可能です。(1.1.3bより主要5フレームワーク対応。)

cakephpでの使い方もかなり簡単。コンポーネントをダウンロードして、componentsディレクトリに配置したあと、コントローラーの先頭でコンポーネントの利用を宣言する。

var $components = array('Qdmail');

んで、関数内で適当にメールが送れる。cakeのviewやelementを送信する本文に利用できるので、コントローラー内にメール本文作成ロジックが散在したりすることもない。(下の例では使っていない)

//メールを作る
$this->Qdmail->to('webmaster@ryuzee.com' , '送信先');
$this->Qdmail->subject('メールのテスト');
$this->Qdmail->from('hoge@example.com' , '送信元' );
$this->Qdmail->text( '本文。cakeのviewを利用したりも出来る' );
$this->Qdmail->send();

これで、php.iniが正しく設定されていればメールが送信できる。
なお、POP before SMTPとかSMTP Authとかが使われているメールサーバだとそのままでは送信できないので、同じ場所で配布されているQdsmtpを使えば良い。

いつも思っていたのだけど、前職の時から、メール送る処理って、何故かみんな毎回ばらばらに作ってるんだよね。mb_sendmailやらmib_mime_headerやらがいつもソースコード中に散在していて、それでもたまに「文字化けが直らないよ~」みたいなくだらない報告が来たりする。折角良いライブラリがあるのに自前で茨の道に進んで、変なトラブルが起こり時間をロス。それって生産性悪いよな。
ビジネスロジックに集中するために、フレームワーク使って開発しているのに、車輪の再開発(しかも動かない)するなんて非論理的。
そういう点を踏まえてQdmailお勧め。

あと、ちょっと別の話だが、WindowsXP上で開発しているとlocalhost上にSMTPがなくて、メール送信処理のテストがしにくいんだよね。
php.iniのWindows専用の設定値で、接続先のSMTPサーバやポートを指定しても、相手側がPOP before SMTPだったり、SMTP Authだったりするとテストできん。
そういう場合は、Radishを使う。RadishはWindows上で動作するSMTP、POP、DNSの軽量デーモン。SMTPの場合、設定変更をすれば、メールはすぐには配送せず配送キューに溜めることができ、どんなメールが何通キューにたまっているのかもすぐ分かる(本文も分かる)。そういう意味でWindows上でメール送信プログラムを書いている人のテスト用途にお勧めだ。
radish1
これで、キューの行をダブルクリックすると、メールソフトでメール本文が表示される。便利。

“[php]メール送信はQdmailで決まり”へのコメントはありません。

コメントはありません。是非コメントしてください。

コメントする

XHTML: 以下のタグが利用可能です: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback

 


ads

読まなきゃモグリ