Fuelphp:Fuelphpで基本的なメール送信処理

FuelphpEmailパッケージを使用し、メール送信をした際の処理をメモします。
システムを作成しているとメール送信処理は頻繁に使用することがあると思います。
FuelphpのEmailクラスを使用することで簡単にメール送信をすることが可能です。


FuelphpでEmailクラスを使用したメール送信

Emailパッケージのロード

Emailクラスを利用可能にするには、Emailパッケージを読込んで使用できる状態にします。
「/fuel/app/config/config.php」の下記の箇所に「email」を追加し、Emailパッケージ読込みます。
※Emailパッケージをオートロードする場合


	'always_load'  => array(
		'packages'  => array(
			// Emailパッケージをオートロード
			'email',
		),

		(省略)
	),

また、Emailクラスを使用する時のみ起動させてい場合は
下記のようにコントローラー側で読込みます。


\Package::load('email');

Emailクラスの設定ファイル

Emailクラスの設定ファイルを編集します。

「/fuel/packages/email/config/email.php」をコピーし、
「/fuel/app/config/email.php」に新規で作成します。

文字化け対策をするため、コピーして新規に作成したファイルを
下記のように編集します。


	'setups' => array(
		'default' => array(),
		'jis' => array(
			'charset' => 'ISO-2022-JP',
			'encoding' => '7bit',
		)
	),

メール送信処理

メール送信をするにはEmail::forge()でインスタンスを生成します。
今回はEmail::forge(‘jis’)で設定ファイルで設定した内容を読込んでいます。

ファイルを使用しない場合


	$email = \Email::forge('jis');
	$email->from('送信元アドレス', '送信者名');
	$email->to('送信先アドレス');
	$email->subject('件名');
	$body = '本文';
	$email->body(mb_convert_encoding($body, 'jis'));

	try {
		$email->send();
	}
	catch (\EmailValidationFailedException $e) {
		$err_msg = '送信に失敗しました。';
	}
	catch (\EmailSendingFailedException $e) {
		$err_msg = '送信に失敗しました。';
	}

ファイルを使用する場合

「/fuel/app/views/email/sample.php」に
メール本文の内容を記載しています。


	$email = \Email::forge('jis');
	$email->from('送信元アドレス', '送信者名');
	$email->to('送信先アドレス');
	$email->subject('件名');
	$body = \View::forge('email/sample', $data);
	$email->body(mb_convert_encoding($body, 'jis'));

	try {
		$email->send();
	}
	catch (\EmailValidationFailedException $e) {
		$err_msg = '送信に失敗しました。';
	}
	catch (\EmailSendingFailedException $e) {
		$err_msg = '送信に失敗しました。';
	}