FuelphpでEmailパッケージを使用し、メール送信をした際の処理をメモします。
システムを作成しているとメール送信処理は頻繁に使用することがあると思います。
FuelphpのEmailクラスを使用することで簡単にメール送信をすることが可能です。
【FuelphpでEmailクラスを使用したメール送信】
■ Emailパッケージのロード
Emailクラスを利用可能にするには、Emailパッケージを読込んで使用できる状態にします。
「/fuel/app/config/config.php」の下記の箇所に「email」を追加し、Emailパッケージ読込みます。
※Emailパッケージをオートロードする場合
1 2 3 4 5 6 7 8 | 'always_load' => array ( 'packages' => array ( // Emailパッケージをオートロード 'email' , ), (省略) ), |
また、Emailクラスを使用する時のみ起動させてい場合は
下記のようにコントローラー側で読込みます。
1 | \Package::load( 'email' ); |
■ Emailクラスの設定ファイル
Emailクラスの設定ファイルを編集します。
「/fuel/packages/email/config/email.php」をコピーし、
「/fuel/app/config/email.php」に新規で作成します。
文字化け対策をするため、コピーして新規に作成したファイルを
下記のように編集します。
1 2 3 4 5 6 7 | 'setups' => array ( 'default' => array (), 'jis' => array ( 'charset' => 'ISO-2022-JP' , 'encoding' => '7bit' , ) ), |
■ メール送信処理
メール送信をするにはEmail::forge()でインスタンスを生成します。
今回はEmail::forge(‘jis’)で設定ファイルで設定した内容を読込んでいます。
・ファイルを使用しない場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $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」に
メール本文の内容を記載しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $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 = '送信に失敗しました。' ; } |