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

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