PHPのRuby on Railsクローンのフレームワーク Akelos PHPをいじってみた出来事のメモ。

Akelosをいじってみるメモ帳

Akelos PHP Blogチュートリアル一覧(全18記事)
Akelos PHP ユーザ認証チュートリアル一覧(全19記事)

2008年09月02日

Akelosユーザ認証チュートリアル 15.メール処理の実装 ActionMailer その2 コントローラとビュー

続いて、メール送信の実際の呼び出しをAccountコントローラに追加します。

下記のファイルを開き編集します。
C:\xampp\htdocs\projects\blog\app\controllers\account_controller.php

追記するアクションはregistアクションとremindアクションです。
各アクションでコメントで後で実装としていたメール部分を下記のようにします。

registアクション内

Ak::import_mailer('notifymail');
$m = new Notifymail();
$m->deliver('regist',$this->User);


remindアクション内

Ak::import_mailer('notifymail');
$m = new Notifymail();
$m->deliver('remindpassword',$u);


import_mailerで使うモデルを指定し、deliverメソッドで呼び出しています。
deliverメソッドの最初の引数はアクション名、2つめ引数はテンプレートに展開する配列です。ここではユーザモデルをそのまま投入しています。

これでコントローラ側の実装は終了です。


続いて、実際のメール本文を修正します。
アクション名と同じ名前のtplファイルがviews\notifymail以下のディレクトリにあります。

まずは、regist時のメールを編集します。下記のファイルを開いてください。
C:\xampp\htdocs\projects\blog\app\views\notifymail\regist.tpl
元々入っているメッセージは必要ありませんので削除して、下記のようにします。

{User.name} 様

ご登録ありがとうございました。
以下の内容で登録が完了しましたのでご連絡いたします。

お名前:{User.name}

パスワード:{User.passwd_confirmation}

ご登録メールアドレス: {User.email}

==========================
サンプルサイト
example@sample.com
==========================


同様に、remindpassword時のメールを編集します。下記のファイルを開いて編集してください。
C:\xampp\htdocs\projects\blog\app\views\notifymail\remindpassword.tpl

{User.name} 様

パスワードを再発行しました。

パスワード:{User.passwd_confirmation}


==========================
サンプルサイト
example@sample.com
==========================


{}に囲まれているところはbody変数に入れた配列のうち、展開する変数を指定しています。
{}内が書き換えられて送信されます。
パスワード表記の所が、passwd_confirmationを指定しているのは、passwd自体は暗号化されているためです。passwd_confirmationは入力したときしか設定されていませんので、安全にメール内に入れることが可能になっています。

以上で、メール送信に関する処理、ActionMailer周りの実装は終了です。
posted by AMUAMU at 22:21| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。