2008年11月27日木曜日

(suz-php-jquery) Mao(Mail Access Object)

スズキです。

ようやく、"suz-php-jquery"のメール送信まわりができました。
Mao(Mail Access Object)で実現しています。
http://code.google.com/p/suz-lab/source/browse/trunk/suz-php-jquery/php/lib/Mao.php

中身は、GeryEngineでテンプレートにデータあてがって本文を作り
それを、Qdmail&Qdsmtpで送信、といった感じです。

使い方は、下記のとおりになります。

(1) Maoのパラメータを定義(MaoDefine)
ここでMaoが利用する、SMTPサーバのHOST、PORT、
FROMのメールアドレス、送信プロトコルを設定します。
--------【PHP】--------
define("MAO_HOST" , "localhost");
define("MAO_PORT" , 25);
define("MAO_FROM" , "from@localhost");
define("MAO_PROTOCOL", "SMTP");
--------
http://code.google.com/p/suz-lab/source/browse/trunk/suz-php-jquery/php/app/Define/MaoDefine.php

(2) メール本文のテンプレートを作成。
"mail/app/パッケージ名"の下にテンプレートファイルを作成します。
http://code.google.com/p/suz-lab/source/browse/trunk/suz-php-jquery/mail/app/example/hoge.vm
テンプレートファイルを置くデフォルトフォルダのルールはDaoと同じです。
http://suz-lab.blogspot.com/2008/10/suz-php-jquery-dao.html
ちなみにDao同様、Maoのコンストラクタ引数で、
テンプレートフォルダの位置も変更できます。

(3) ActionからMaoを利用
下記のように利用します。
--------【PHP】--------
class ExampleAction {
  public function sendMail() {
    require_once("Mao.php");
    $mao = new Mao();
    return $mao->hoge(
      array('to@localhost' , '宛先日本語名' ),
      'テスト',
      array('from@localhost' , '送り元日本語名' ),
      array()
    );
  }
}
--------
http://code.google.com/p/suz-lab/source/browse/trunk/suz-php-jquery/php/app/Action/ExampleAction.php

ポイントは

$mao->テンプレートファイル名(
  array('宛先' , '宛先日本語名' ),
  'タイトル',
  array(''送り元' , '送り元日本語名' ),
  array() // GeryEngineに送るコンテキスト
);

です。

とにかく、テンプレートに対する仕組み/ルールはDaoと同じです。

Taoを使ったHTML書き出しのサンプル作ったら、
PHPの部分は、いったん、落ち着くなー。

--
http://suz-lab.blogspot.com/

0 コメント: