Web事業部実績紹介
Web事業部実績紹介
2015.04.14

CodeIgniterでテンプレートを使ってメールを送信する方法

ひろゆき

こんにちは、ひろゆきです。

今日は、CodeIgniterでテンプレートを使用してメールを送信する方法をメモとして残したいと思います。

1. テンプレートの準備

「application/views」の下に「template/mail」ディレクトリを作成して、メールのテンプレートとなるcontact.phpを配置します。contact.phpの内容は、以下のように書きます。

{name}さまからお問い合わせがありました。

====お問い合わせ内容======
■お名前
{name}さま

■メールアドレス
{mail}

■電話番号
{tel}

<?php if(isset($zip) && $zip != ''): ?>
■郵便番号
{zip}
<?php endif; ?>

<?php if(isset($address) && $address != ''): ?>
■住所
{address}
<?php endif; ?>

■問い合わせ内容
{contact_body}
==========================

今回は、お問い合わせフォームのメール送信を例にして書いてみました。
また、郵便番号と住所は任意入力とし、ない場合は項目自体を非表示にする作りにしてみました。

2. テンプレートパーサ呼び出し

次に、メール送信処理の際に以下を記述します。

今回はコントローラーにてメール送信処理を記述します。
(本来は入力画面から受け取った値にバリデーションチェックをかけた値をセットしますが、割愛します。)

・
  ・
  ・
// テンプレートに渡す値の設定
$data = array();
$data['name'] = '大田 博之';
$data['mail'] = 'test@example.com';
$data['tel'] = '03-xxxx-xxxx';
$data['zip'] = '110-0015';
$data['address'] = '';
$data['contact_body'] = 'お問い合わせ内容';

// パーサーロード
$this->load->library('parser');

// テンプレートに変数をアサイン
$message = $this->parser->parse('template/mail/contact', $data, TRUE);
  ・
  ・
  ・

3. メール送信

後はいつも通りメールを送る処理を記述するだけです。
「2」で生成した$messageをセットします。

・
  ・
  ・
// メールライブラリをロード
$this->load->library('email');

$this->email->from($data['mail'], mb_encode_mimeheader($data['name'], 'UTF-8', 'B'));
$this->email->to('hogehoge@liginc.co.jp');
$this->email->subject('お問い合わせを受け付けました');
$this->email->message($message);
// メール送信
$this->email->send();
  ・
  ・
  ・

以上となります。

まとめ

いかがでしたでしょうか?
CodeIgniterはこういった処理もサクッと書けて便利ですね!
今回は、よく実装するテンプレートを使用してメールを送信する方法を書いてみました。

それでは、また。

 

【フレームワークを使用してサクッとコード記述】

Web開発フレームワーク「CodeIgniter」でデバイス別テーマ切り替えを実装する方法

Web制作者でもネイティブアプリが作れる!node-webkitを使ってみよう

WordPressで「Blade」テンプレートエンジンを使おう!

カスタマイズ性抜群!Sassに対応したCSSフレームワークがアツイ!