#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_hostSMTP サーバのアドレスなし
smtp_userSMTP のユーザ名なし
smtp_passSMTP のパスワードなし
smtp_portSMTP のポート番号25
smtp_cryptoSMTP 暗号化なし(ssltls)
protocolメールを送信するプロトコルmail (mailsendmailsmtp)
wordwrapワードラップの有効化設定TRUE (TRUEFALSE)
mailtypeメールのタイプtext(texthtml)

#日本語文字化け対策

日本語メール送信文字化けの原因はワードラップの有効化設定

#方法 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 設定に入れる

2020-03-13
  • codeigniter

関連記事