- 締切済み
PHPフォームからメールを受信した時に文字化けが発生
申し込みフォームから受信したメールが、文字化けします。 windowsではちゃんと表示されるのですが、macでは文字化けします。 更に、必ずはじめに以下の文面が記載されてきます。 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit 困ってます!!宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- sendaitaro
- ベストアンサー率25% (6/24)
メール頂いたでしょうか? 文字化けはしてません。 mb_language('Japanese'); シングルコートでいいのかな?
- sendaitaro
- ベストアンサー率25% (6/24)
PHPのソース、header部分(Content-Type: text/plain; charset=ISO-2022-JP)の後ろに改行コードはいってますか? 文字化けですがエンコードの指定はどうなっていますか? MACがないので分かりませんが・・・・ ここからMACで送信して化ければ 私のもバグッてます。 http://www.tactem.co.jp/ocnmail.php
お礼
ありがとうございました。
補足
すみません。。 PHPは全く初心者で・・以下のような内容なのですが。。 <?php function cnv_dbstring($string, $enc) { // 文字コードを変換する $det_enc = mb_detect_encoding($string, "EUC-JP, SJIS, ASCII, UTF-8"); if ($det_enc and $det_enc != $enc) { return mb_convert_encoding($string, $enc, $det_enc); } else { return $string; } } //HTMLファイルの呼び出し if(!empty($_POST['send_req'])){ $ary_keys = array_keys($_POST); $ary_vals = array_values($_POST); for($i=0;$i<count($ary_keys);$i++){ $$ary_keys[$i] = cnv_dbstring(mb_convert_kana($ary_vals[$i],"K"),"SJIS"); } //メール送信処理 if($option1 == 0 or $option1 ==1){ $option = "不要"; }elseif($option1 == 2){ $option = "LANケーブル 3m"; }elseif($option1 == 3){ $option = "LANケーブル 5m"; }elseif($option1 == 4){ $option = "LANカード (ノートPC用)"; }elseif($option1 == 5){ $option = "LANボード (デスクトップPC用)"; }elseif($option1 == 6){ $option = "e-Broadスタートパック"; } $mail_mainm .= "ご住所: ".$address."\n"; $mail_mainm .= "マンション名: ".$man."\n"; $mail_mainm .= "お部屋番号: ".$roomno."\n"; $mail_mainm .= "お名前 (漢字):".$name."\n"; $mail_mainm .= "お名前 (カナ):".$kana."\n"; $mail_mainm .= "お電話番号: ".$tel."\n"; $mail_mainm .= "E-MAIL: ".$mail."\n"; $mail_mainm .= "オプション: ".$option."\n"; $mail_mainm .= "問い合わせ ".$naiyou."\n"; //$mail_mainm = mb_convert_encoding($mail_mainm,'SJIS','SJIS'); //From整形 $from_name = "[e-Broad 申し込み]"; $from_name = mb_convert_encoding($from_name, "ISO-2022-JP", "Shift_JIS")\n; $body = "テスト本文"; //$from_name = mb_encode_mimeheader($from_name2,"sjis"); $from = $from_name; $send_mail = $mail."\n, メールアドレスダミー"; //スパムメールならないようにメール送信前にチェックを入れる //put_mail($mail_main,$from,$login_user_id); mb_language('Japanese'); mb_internal_encoding("SJIS"); mb_send_mail($send_mail,$from,$mail_mainm,$body); header("Location: send_mail.html",'From: メールアドレスダミー'); } ?>
お礼
ありがとうございます。解決しました。 すごく役に立ちました。