Mail コンポーネント

Lambda/components/Mail.php

テンプレートに対応した、メール送信をサポートします。
Mail コンポーネントを利用すると、以下のようなテンプレートでメールを送信することが可能です。

登録完了のお知らせ

<?php echo $name ?>

この度は、ご登録いただきまして誠にありがとうございます。

下記内容にて、ご登録を受付いたしました。

氏名: <?php echo $name ?>
年齢: <?php echo $age ?>
性別: <?php echo $gender ?>

[記述ルール]
一行目: 件名
二行目: 空行(改行のみの行)
三行目以降: 本文

 

では、詳しい使い方を説明していきます。

まず最初に、Mail::setTemplateDir メソッドで、テンプレートを探索するディレクトリを指定します。

Mail::setTemplateDir('/Lambda/mailtemplates');

※ このメソッドを呼ばない場合、暗黙のうちに Mail.php が置かれているディレクトリが設定されます。

lmd では、Lambda.init.php 内で、Mail::setTemplateDir メソッドを呼んでいます。
 

これ以降、テンプレートを探索するディレクトリに「/Lambda/mailtemplates」が指定されたものとして説明していきます。

 
Mail::setTemplate('thanks'); // 拡張子 .php は不要
Mail::setParams(array(
    'name'   => '山田',
    'age'    => 27,
    'gender' => '男性',
));
Mail::send('to@example.com', 'from@example.com');
  1. /Lambda/mailtemplates/thanks.php をテンプレートとして利用します。
  2. パラメーターをセットします。
  3. メールを送信します。
 

先の内容のテンプレートの場合、次のように展開されます。

登録完了のお知らせ

山田様

この度は、ご登録いただきまして誠にありがとうございます。

下記内容にて、ご登録を受付いたしました。

氏名: 山田
年齢: 25
性別: 男性
 

メール送信メソッド Mail::send の説明

Mail::send($to_addr, $from_addr [, $encoding, $header, $bounce_to]);

$to_addr (必須)
送信先のメールアドレス

$from_addr (必須)
送信元のメールアドレス

$encoding (任意)
テンプレートの文字エンコーディングを指定します。デフォルトは「utf-8」です。「utf-8」以外で利用する場合は「euc-jp」と「sjis」が指定できます。

$header (任意)
追加したいメールヘッダーを指定します。
※ 末尾は「\r\n」で終わらせます。ただし、最終行の末尾に「\r\n」は不要。

$header  = 'X-Mailer: Hoge Fuga Mailer'."\r\n";
$header .= 'X-Priority: 3'."\r\n";
$header .= 'X-Status: 250 OK';

$bounce_to (任意)
バウンスメール(不達メール)の送信先メールアドレスを指定します。
(PHP が safe_mode で動作している一般的なレンタルサーバーでは、指定しても無視される場合があります)