‘PEAR’ カテゴリーのアーカイブ

CakePHP: お問い合わせプラグインを作成

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

CakePHP1.1で、お問い合わせプラグインを作りました。
入力項目は、

  1. 名前
  2. メールアドレス
  3. カテゴリー(選択)
  4. 件名
  5. 本文

です。

私が使ってるPEAR::Mailを使ったMailComponentが必要なので、同梱しています。もし、MailComponentが既にある場合は、InquiryControllerの内容を書き換えるか、私が使ってるMailComponentを使ってください。

デモというか、ページの感じは、私のサイトで確認できます。(実際に動いてます)

http://hillclimb.319ring.net/inquiry/

以下のリンクからダウンロード可能です。使用される方はreadme.txtをよく読んでから使用してください。

cake_inquiry_plugin_ver_1.0.zip


PEAR::Mail_Queueにハマる…

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

CakePHPでとあるツールを作成するようになっている(CakePHPは自分で選んだのだけれど)ので、その機能の一部である部分を作りこむために、PEAR::Mail_Queueを使おうとしたのです。PEAR::Mail_Queueは、まあ一言でいうとメールを非同期で送信してくれるやつです。メールを送る予約だけしておいて、あとの時間でシステム側が勝手にメールを送ってくれるという代物です。まあ勝手にといっても自分で設定しないといけませんが。

Mail_Queueについては以前に使ったことがあったので安心して使おうとしていたのですが、見事にハマりました。CakePHPでまずMailQueueComponentを作ろうとしたわけです。で、putするところまでは特に苦労なしにいけました。しかし、なぜかキューに入ったメールを取り出せない…。sendMailsInQueueだったかな?それを使ってもダメだし、whileでキューがあるだけgetして回す方法をしようとしてもダメでした。う〜ん、原因不明。

環境がXAMPPなので、メール送信環境がちゃんとないからか?と思いましたが、PEAR::Mailで作ったMailComponentを使ってメールを送信したらちゃんと送ることができたので、メール環境ではない。やはりPEAR::Mail_Queueか!このライブラリはあんまり評判もよくないみたいなので、もうこうなったらMail_Queueっぽい動きをするものを自作してやろうかなとかまで考えてしまいます。でもモデルに依存する形のコンポーネントになるから、あんまりよくないですね。もしくはPEAR側をhackするか…。こちらのほうがあんまり自信ないなぁ。