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

Akelosをいじってみるメモ帳

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

2008年09月02日

Akelosユーザ認証チュートリアル 14.メール処理の実装 ActionMailer その1 生成とモデル

Akelos 0.8のダウンロードパッケージには含まれていませんが、svnの最新パッケージを取得すれば、ActionMailer(AkActionMailer)が使えるようになりました。
これで簡単にメール送信のプログラムが作れます。

ActionMailerのインストール方法ですが
http://trac.akelos.org/browser/trunk/

このページからダウンロードして C:\xampp\htdocs\akelos\lib\ に上書きで展開しましょう。。
ダウンロードは画面の一番下の「Download in other formats:Zip Archive」というところから一括ダウンロードできます。

準備が出来たら、メール送信の雛形を作ります。
コマンドラインで以下を入力して実行してください。

C:\xampp\htdocs\projects\blog>c:\xampp\php\php.exe script\generate mailer Notifymail regist remindpassword --sintags --force


generateスクリプトの指定方法は、mailerと指定している以外は、今までと同じ感じですね。
2番目にMailerの名前を指定。
3番目以降に作りたいアクションを書く感じです。

これで関係するファイルが作られます。

なお、8/12現在のものはバグがあり、View用のテンプレートが間違ったディレクトリに作られます。
もし C:\xampp\htdocs\projects\blog\app\views\notifymail\ のディレクトリ内が空の場合は、C:\xampp\htdocs\projects\blog\app\views\app\views\notifymail\ のディレクトリに作られていますので、後者から前者にファイルを移動してください。


続いて、実際のメール送信の処理を書きます。
下記のファイルを開いてください。
C:\xampp\htdocs\projects\blog\app\models\notifymail.php

デフォルトの内容で、registとremindpasswordのアクション内容が入っています。
これを下記のように書き換えます。


<?php

class Notifymail extends AkActionMailer
{

function regist($User)
{
$this->setCharset('ISO-2022-JP');
$this->setRecipients($User->email);
$this->setSubject("[Notifymail] 登録のご案内");
$this->setFrom('master@example.com');
$this->setBody(array( 'User'=> $User ));
$this->log($this->Message);
}


function remindpassword($User)
{
$this->setCharset('ISO-2022-JP');
$this->setRecipients($User->email);
$this->setSubject("[Notifymail] パスワード再発行のご案内");
$this->setFrom('master@example.com');
$this->setBody(array( 'User'=> $User ));

}

}

?>


非常にシンプルですね。
予め用意されている各種メール用のプロパティに必要な情報を与えていくだけです。

最初のsetCharsetは、日本語メールの場合は必須です。
設定しないと標準のUTF-8とかになりますが、文字化けとかおきますので注意。

setRecipients は送信先アドレス。
setSubjetct はメールの題名(タイトル)
setFrom は送信元アドレス
setBody は本文ですが、ここでは引数で渡されてきたUserクラスをそのまま渡しています。Userクラスの各配列がテンプレート内に展開されるようになっています。
posted by AMUAMU at 22:12| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/105918922

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

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