最近phpをバージョンアップしたら、受信メールのアカウントの名前と件名と本文の半角カタカナが文字化けするようになりました。
メール受信するときは、ReceiptMailDecoder.class.phpを使わせていただいています。
OSは、Centos7です。
インターネットの情報では「php.iniのdefault_charsetというパラメーターがデフォルト値が空から"UTF-8"に変更されているようです」とあったので、php.iniのdefault_charsetを「空」にしましたが、改善されませんでした。
どなたか情報をお持ちの方がおられましたら力を貸してください。
よろしくお願いします。
php
1require_once('/usr/local/bin/ReceiptMailDecoder.class.php'); 2 3//X-Original-Toを取得する 4$deliveredto = $decoder->getDeliveredTo( 'x-original-to' ); 5 6//$deliveredtoからアカウントを取得 7$deliveredaccount = strstr($deliveredto, "@", true); 8 9//Fromから「名前<アカウント@ドメイン>」を取り出す 10$fromtxt = $decoder->getDecodedHeader('from'); 11$fromtxt = mb_convert_encoding($fromtxt,"UTF-8",mb_detect_encoding($fromtxt, "ASCII,JIS,UTF-8,CP51932,SJIS-win,iso-2022-jp", 'true')); 12 13//件名を取得する 14$subject = $decoder->getDecodedHeader( 'subject' ); 15$subject = mb_convert_encoding($subject,"UTF-8",mb_detect_encoding($subject, "ASCII,JIS,UTF-8,CP51932,SJIS-win,iso-2022-jp", true)); 16 17//本文を取得する 18$body = mb_convert_encoding($decoder->body['text'],'UTF-8','auto'); 19$body = mb_convert_encoding($body,'UTF-8',mb_detect_encoding($body, 'ASCII,JIS,UTF-8,CP51932,SJIS-win,iso-2022-jp','auto')); 20 21$subto='<'.$deliveredaccount.'@xxxxxxx.com>'; 22 23mb_language("japanese"); 24mb_internal_encoding("UTF-8"); 25 26//メール送信 27$atesaki = $subto; 28$kenmei = $subject; 29$naiyou = $body; 30$from = $txtfrom; 31 32//送信します 33echo mb_send_mail($atesaki,$kenmei,$naiyou,'From:'.$from); 34
回答3件
あなたの回答
tips
プレビュー