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 = '送信に失敗しました。'; }