# codeigniter email ライブラリでメール送信 日本語対応
# email クラス SMTP 送信設定
class MY_Controller extends CI_Controller
{
protected $email_config;
public function __construct()
{
parent::__construct();
$this->email_config = [
'smtp_host' => env('SMTP_HOST'),
'smtp_user' => env('SMTP_USER'),
'smtp_pass' => env('SMTP_PASS'),
'smtp_port' => env('SMTP_PORT'),
'smtp_crypto' => env('SMTP_CRYPTO'),
'protocol' => 'smtp',
'wordwrap' => false
];
}
}
# よく使う email クラスの SMTP 設定項目
| 項目 | 説明 | 初期値(選択肢) |
|---|---|---|
| smtp_host | SMTP サーバのアドレス | なし |
| smtp_user | SMTP のユーザ名 | なし |
| smtp_pass | SMTP のパスワード | なし |
| smtp_port | SMTP のポート番号 | 25 |
| smtp_crypto | SMTP 暗号化 | なし(ssl tls) |
| protocol | メールを送信するプロトコル | mail ( mail sendmail smtp) |
| wordwrap | ワードラップの有効化設定 | TRUE ( TRUE FALSE ) |
| mailtype | メールのタイプ | text(text html) |
# 日本語文字化け対策
日本語メール送信文字化けの原因はワードラップの有効化設定
# 方法 1:$this->email->set_wordwrap(false)
$this->load->library('email');
$this->email->initialize($this->email_config);
$this->email->from('email@hapicode.com', 'メール送信サンプル');
$this->email->to('email_to@hapicode.com');
$this->email->cc('email_cc@hapicode.com');
$this->email->bcc('email_bcc@hapicode.com');
$this->email->subject('メールタイトル');
$this->email->message('
メール内容
改行認識\n
\r\n
テストで送信してみよう!
');
// 日本語文字化け対策
$this->email->set_wordwrap(false);
$this->email->send();
# 方法 2: $this->email->initialize(['wordwrap' => false])
$this->email_config = [
'smtp_host' => env('SMTP_HOST'),
'smtp_user' => env('SMTP_USER'),
'smtp_pass' => env('SMTP_PASS'),
'smtp_port' => env('SMTP_PORT'),
'smtp_crypto' => env('SMTP_CRYPTO'),
'protocol' => 'smtp',
'wordwrap' => false,
];
$this->email->initialize($this->email_config)
初期化設定のタイミングで config 設定に入れる