FuelphpでEmailパッケージを使用し、メール送信をした際の処理をメモします。
システムを作成しているとメール送信処理は頻繁に使用することがあると思います。
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 = '送信に失敗しました。';
}