作成日:2018-03-28, 更新日:2018-03-28
基本
・「fuel\app\config\config.php」の「always_load」の「packages」に「email」を追加。
・「fuel\packages\email\config」の「email.php」を「fuel\app\config」に複製
・「fuel\app\config\email.php」を修正
「fuel\app\config\config.php」
'always_load' => array( ~ 略 ~ 'packages' => array( //'orm', 'email', ), ~ 略 ~
※「always_load」のトコがコメントされているときは解除する必要あり。「'always_load' => array(」に対応する「);」のトコも。
「fuel\app\config\email.php」を修正
・driverを修正。「mail, smtp, sendmail, noop」のどれか。
※基本、修正は不要。
送信テストと使い回し用の独自関数
$toMail = 'tomail@example.com'; $title = 'テストメール'; $body = 'テストの本文'; $pramAry = array(); $resultMail = \Util_Email::mailSend($toMail, $title, $body, $pramAry); if ( !$resultMail['status'] ) { // 送信失敗 echo $resultMail['message']; }
▼「/fuel/app/classes/util/email.php」
<?php class Util_Email { const FROM_MAIL = 'hoge@example.com'; // 送信元のメアド const FROM_NAME = '丸ごとシマウマ'; // 送信元のメアドの名前 /** メール送信 * ▼$pramAry['cc']、$pramAry['bcc'] * $pramAry['cc'] = 'xxx@xxx.com'; // 名前なし・一人だけ * $pramAry['cc'] = array('xxx@xxx.com'=>'○○○'); // 名前あり * $pramAry['cc'] = array('xxx@xxx.com', 'xxx@xxx.com'); // 複数人 * $pramAry['cc'] = array('xxx@xxx.com'=>'○○○', * 'xxx@xxx.com'=>'○○○'); // 複数人(名前あり) * * ▼添付ファイル1つだけ * $pramAry['attach'] = DOCROOT . "assets/img/xxx.png" * * ▼添付ファイル複数 * $pramAry['attach']= array( DOCROOT . "assets/img/xxx.png", * DOCROOT . "assets/css/xxx.css" * ); **/ public static function mailSend($toMail, $title, $body, $pramAry=array()) { $result = array( 'status' => false, 'message' => '' ); //インスタンスの作成 $email = \Email::forge('jis'); $tmpFromMail = self::FROM_MAIL; $tmpFromName = self::FROM_NAME; if (isset($pramAry['fromMail'])) { $tmpFromMail = $pramAry['fromMail']; if ((isset($pramAry['fromName']))) { //$tmpFromName = mb_encode_mimeheader( $pramAry['fromName'], 'jis' ); $tmpFromName = $pramAry['fromName']; } else { $tmpFromName = ''; } } //メール情報の設定 $email->from($tmpFromMail, $tmpFromName); $email->to($toMail); // cc if ( isset($pramAry['cc']) ) { $email->cc($pramAry['cc']); } // bcc if ( isset($pramAry['bcc']) ) { $email->bcc($pramAry['bcc']); } //$email->subject(mb_encode_mimeheader($title, 'jis')); //$email->body(mb_convert_encoding($body, 'jis')); $email->subject($title); $email->body($body); // 添付ファイル if ( isset($pramAry['attach']) ) { // 複数ファイルを添付するなら配列 if ( is_array($pramAry['attach']) ) { foreach ($pramAry['attach'] as $rowAttach) { $email->attach($rowAttach); } } else { $email->attach($pramAry['attach']); } } try { //メール送信 $email->send(); $result['status'] = true; } catch (\EmailValidationFailedException $e) { $result['message'] = 'address error(EmailValidationFailedException)。<br />' . $e->getMessage(); } catch (\EmailSendingFailedException $e) { $result['message'] = 'send error(EmailSendingFailedException)。<br />' . $e->getMessage(); } catch(Exception $e) { //その他のエラー $result['message'] = 'error(Exception)。<br />' . $e->getMessage(); } return $result; } }