CakePHP::メール送信プラグインを書いた

7月 9th, 2007 admin Posted in CakePHP, PHP | 3 Comments »

CakePHPのpluginsってフォルダが気になっていたのでマニュアルを読みながらプラグイン作成に挑戦した。
DBを使わないことに決めたので、ビューにメールの本文を書いたり(requestActionが使いたかっただけ)、メールアドレスがモデルに書いてあったりしてあるので、その辺は使うときにいい感じにして下さい。

とにかくこれをダウンロードしてプラグインフォルダに突っ込めばお問合せフォームができるんだからCakePHPはやっぱりすごい。

cakephp_plugin_mail-01.zip(16kb)

仕様

よくあるお問合せフォーム

  • 確認画面あります
  • 管理者(複数)とお問合せ主にメール送ります

設置・設定

設置は簡単で、解凍してできたmailというフォルダを/plugins/mailって感じでおいてやるだけ。すると/app_dir/mail/mail_contacts/indexでアクセスできるようになる。
最低必要な設定は、/mail/models/mail_contact.php#getConfig()のところ

  function getConfig(){
    return array(
            'mail_from'      =>  'info@example.com',
            'mail_to'      =>  array("staffa@example.com","staffb@example.com"),
            'admin_title'    =>  'ホームページよりお問合せ',
            'customer_title'   =>  'お問合せ有難うございました。[bekery php]',
          );
  }

mail_form・・・メールのfromのアドレス
mail_to・・・管理者のアドレス、複数登録できる
admin_title・・・管理者あてのメールのタイトル
customer_title・・・お問合せ主宛てのメールのタイトル

あとは、メールの本文が
/mail/views/mail_contacts/bodyForAdmin.thtml
/mail/views/mail_contacts/bodyForCustomer.thtml
の二つのファイルで普通にビューになっているのでそれを編集。

気になった点

  • 入力>確認>完了の「確認」部分が非常に面倒くさい
  • radioボタンのデフォルト値の設定方法が不明
  • Cake流のメールの送り方がわからない(プレーンテキストでしかおくらないしなー)
  • プラグインってあんまり使われて無い?便利なプラグインが腐るほどあるんじゃないかと思ったんだが見つからなかった。

みんなどうやってコーディングしているのか気になってきた。cheesecakeとか読んだ用がいいのかな?できれば日本人がかいたスクリプトがいいんだけど・・・・すごい人たちで、お問合せフォームコンテスト、掲示板コンテストを行って欲しい。

3 Responses to “CakePHP::メール送信プラグインを書いた”

  1. こんにちわ、ダウンロードしたアーカイブを解凍すると、mailフォルダの中にまたmailフォルダが入ってました(動作には問題ないですが)。こちらの解凍の仕方が悪いのかもしれませんがご確認いただけませんか?

  2. ホームページでのご紹介有難うございました。
    フォルダが二重になってますね(^^
    次のバージョンアップ時にでも修正しておきます。

    久しぶりにソースを見直したんですが、

    ・メールのタイトルなどはモデルのプロパティで持たせる
    ・controllerのfunction customer()とかはプライベートメソッドにする(メソッド名の最初にアンダースコア)(というかこのメソッドいらないな)

    にしたほうが良いなと思いました。
    人にソースを見てもらうって大事ですね。勉強になります。

  3. プラぐインの使い方参考になります。

    >CakePHPでラジオボタンにデフォルト値を設定する方法

    こちらに記事を書いておきました。

    CakePHPでradioボタンにデフォルト値を設定する構文の書き方
    http://blog.modeelf.com/魔法/cakephpでradioボタンにデフォルト値を設定する構文の書/