メール送信モジュール

モジュールMailはメール送信処理クラスです。

メソッド

send(array $to_addrs, string $subject, string $msg, string $from_addr, $html_flag = FALSE)
Eメールを送信します。$to_addrで送信先メールアドレスの一覧を以下のように配列で指定します。
$to_addrs = array('test1@test.com', 'test2@test.com', ..);
配列なので複数のアドレスに送信できるようになっていますが、送信先が1箇所の場合は要素が1個の配列になります。
$subjectで件名を、$msgで本文を、$from_addrで送信元メールアドレスをそれぞれ文字列で指定します。
$html_flagがTRUEの場合はMIMEタイプを「text/html」(HTMLメール)として送信します。FALSEもしくは指定しない場合は「text/plain」になります。
送信に成功したらTRUEを、失敗したらFALSEを返します。
sendTemplate(array $to_addrs, string $subject, string $template_file, array $vars, string $from_addr, $html_flag = FALSE)
テンプレートファイルを使用してEメールを送信します。メールテンプレートファイルは
(project_root)/mail_templates
にテキストファイルとして設置します。テンプレートで変数を代入する場合は{変数名}の形式で変数を記述しておきます。
$to_addrsで送信先メールアドレスをsend()と同様の形式で指定します。
$subjectで件名を、$from_addrで送信元メールアドレスをそれぞれ文字列で指定します。
$template_fileで先のmail_templates内に設置したテンプレートファイル名を指定します。$varsでテンプレートに代入する変数を以下の形式の連想配列で指定します。
$vars = array(
	'変数名' => 値,
	'変数名' => 値,
);
$html_flagがTRUEの場合はMIMEタイプを「text/html」(HTMLメール)として送信します。FALSEもしくは指定しない場合は「text/plain」になります。
送信に成功したらTRUEを、失敗したらFALSEを返します。

使用例

以下は会員登録フォームから登録リクエストを受け取り、入力されたメールアドレスに仮登録完了メールを送信するプログラムです。メール内には本登録のためのアドレスが記載されています。

<?
class ctrlMailAddr extends CZCtrl

	public function registCommit() {
		// アクセスチェック
		$this->checkPrevActions(array(
			array('confirm'),
		));

		// 登録フォームのインスタンスを取得
		$form = $this->newForm('regist_mail_addr');

		// 登録フォームの値を取得
		$form_values = $form->loadValues();

		// 本登録URLのためのランダムな文字列を生成
		$commit_code = md5(rand());

		// 登録内容と上記の文字列(照合用)、タイムスタンプをDBに保存
		$add_values = array(
			'commit_code'     => $commit_code,
			'regist_datetime' => array('sql' => 'NOW()'),
		);
		if (!$this->newModel('m_user')->commitInsert($form_values, $add_values)) {
			$this->_redirect(array('index'));
		}
		// ユーザIDを取得
		$user_id = $this->newModule('db')->getInsertedId();

		// フォームをクリア
		$form->freeAll();

		// メール送信
		$to_addrs      = array($form_values['mail_addr']);
		$subject       = '[Chimpanzeeフォーラム]メールアドレスの仮登録を承りました。';
		$template_file = 'regist_mail_addr.txt';
		$vars          = array(
			'user_id'     => $user_id,
			'commit_code' => $commit_code,
		);
		$from_addr     = 'hnr3df-noreply@chimpanzee-php.com';
		$this->newModule('mail')->sendTemplate($to_addrs, $subject, $template_file, $vars, $from_addr);

	}

}

regist_mail_addr.txt

この度はChimpanzeeフォーラムをご利用いただきまして誠にありがとうございます。

24時間以内に下記のURLへアクセスし、ユーザー登録の完了をお願いします。

http://test.com/user/regist?ui={user_id}&cc={commit_code}

--------
Chimpanzeeフォーラム

前後のページ

ページトップへ