php mb_send_mail関数 outlookで文字化けする

php mb_send_mail関数 outlookで文字化けする

phpでメール送信時にoutlookで文字化けが発生していたので、その対処方法

環境

PHP Version 5.6.21

.htaccess編集

レンタルされていたサーバーが、直接apacheの編集ができない環境だったので.htaccessに記載する

## 追加
php_value default_charset "UTF-8"
php_value mbstring.language Japanese

ソースコード

以下のメールを送信するソースでメールを送信

mb_language('ja');
mb_internal_encoding("UTF-8");
 
//宛先、Fromを設定	
$from = "hoge@hoge.com";

//件名
$subject = "件名";
	 
//headerを設定
$charset = "UTF-8";
$headers['MIME-Version'] = "1.0";
$headers['Content-Type'] = "text/plain; charset=".$charset;
$headers['Content-Transfer-Encoding'] = "8bit";
$headers['From'] = $from;
//BCC設定
$headers['BCC'] = $from;

//headerを作成
foreach ($headers as $key => $val) {
	$arrheader[] = $key . ': ' . $val;
}
$header = implode("\n", $arrheader);

//本文
$body = "本文";

//送信
mb_send_mail($email, $subject, $body, $header);   

これで文字化けは解消された