php-5.5.27
Windows2008R2
mb_send_mailにて本文、題名などに半角カタカナを利用すると、「????」となって
しまいます。
php
1$header = mb_convert_encoding($header, 'ISO-2022-JP-MS', 'UTF-8' ); 2や 3$header = mb_convert_kana($header, "KV", "utf-8"); 4メール送信 5mb_send_mail ( $to,$sub,$msg,$header)
をしても「???」となってしまいます。
どのようにしたら対処できますでしょうか?
下記にソースコードを記載します。
php
1<?php 2 3setlocale(LC_CTYPE, 'Japanese_Japan.932'); //locale設定 4 5mb_language("Japanese"); 6mb_internal_encoding("SHIFT-JIS"); 7 8 9require_once ( 'xxx.inc.php' ); 10 11$mysqli = new mysqli(HOST_IP, USER_NAME, USER_PASSWORD, DB_NAME); 12 13 // SQLを実行します(ユーザ名・パスワード検索)。 14if (!$select = mysqli_query($mysqli, "SELECT * FROM db_user")) { 15 16header("Location:./ERROR/db-error.php"); 17 18 exit(); 19} 20 21 22//$result = mysqli_query($mysqli, "SELECT Address FROM mail"); 23//if (!$result) { 24// echo '只今、システムが利用できません。管理者にお問合せ下さい。'; 25// exit; 26//} 27 28// SQLの実行(SELECT) 29$sql = "SELECT * FROM mail where FLG = '0' or '1' "; 30if ($result = $mysqli->query($sql)) { 31 // 連想配列を取得 32 while ($row = $result->fetch_assoc()) { 33 // echo $row["Address"] . $row["JIGMEK"] . "<br>"; 34 //echo $row["Address"] . "<br>"; 35 $email[] = $row["Address"]; 36 $send = implode(",", $email); 37 38 } 39 // 結果セットを閉じる 40 $result->close(); 41} 42 43// SQLの実行(SELECT) 44$sql1 = "SELECT * FROM mail where FLG = '1'"; 45if ($result1 = $mysqli->query($sql1)) { 46 // 連想配列を取得 47 while ($row = $result->fetch_assoc()) { 48 // echo $row["Address"] . $row["JIGMEK"] . "<br>"; 49 //echo $row["Address"] . "<br>"; 50 $email2[] = $row["Address"]; 51 $sendkanri = $email2; 52 } 53 // 結果セットを閉じる 54 $result1->close(); 55} 56 57 58// SQLの実行(カウント) 59//echo "rows=" . mysqli_num_rows($result); 60//MySQL から切断 61// $mysqli->close(); 62 63//echo $send; 64 65 66//dateでフォーマットを指定して日付を取得 67//5.1.0からタイムゾーンを設定する必要がある。 68date_default_timezone_set('Asia/Tokyo'); 69$systemDate = date("Y/m/d/ H:i:s"); 70 71$send = $send ."," .$MAIL; 72 73 74$msg = "お疲れ様です。"; 75 76//////////0x5c対応////////// 77//エスケープ文字削除 78$FILENAME2 = stripcslashes($FILENAME2); 79//////////0x5c対応////////// 80 81 82 83//$array[] = "アップロードされました。"; 84//$array[] = ""; 85//$array[] = "テスト"; 86//$array[] = ""; 87//$array[] = "担当者"; 88$msg .= "\r\n"; 89$msg .= "\r\n"; 90$msg .= "アップロードされました。"; 91$msg .= "\r\n"; 92$msg .= "\r\n"; 93$msg .= " ■アップロード日付:$systemDate"; 94$msg .= "\r\n"; 95$msg .= "\r\n"; 96$msg .= " ■タイトル:$test"; 97$msg .= "\r\n"; 98//$msg .= "\r\n"; 99//$msg .= " ■会社名:$test1"; 100//$msg .= "\r\n"; 101$msg .= "\r\n"; 102$msg .= " ■送信者:$test2"; 103$msg .= "\r\n"; 104$msg .= "\r\n"; 105$msg .= " ■アップロードファイル名:$FILENAME2"; 106$msg .= "\r\n"; 107$msg .= "\r\n"; 108$msg .= " ■ダウンロード先:テストURL"; 109$msg .= "\r\n"; 110$msg .= "\r\n"; 111$msg .= "\r\n"; 112$msg .= "\r\n"; 113$msg .= "ご確認をお願いします。"; 114 115$to = "$send"; 116$sub = "資料【" .$test ."】アップロード完了"; 117 118 119$header = "From: " .mb_encode_mimeheader("テスト") ."<test@xx.dxxx.xx.jp>"; 120 121$header.= "\n"; 122$header.= "Bcc:xxxx@xx.xxx.xx.xx"; 123 124 125// 件名をJISに変換 126$sub = mb_convert_encoding($sub,"SHIFT-JIS"); 127// 本文をJISに変換 128//$header = mb_convert_encoding($header,"SHIFT-JIS"); 129$header = mb_convert_encoding($header, 'ISO-2022-JP-MS', 'SHIFT-JIS' ); 130//$header = mb_convert_kana($header, "KV", "SHIFT-JIS"); 131 132 133if (!$mailsend = mb_send_mail ( $to,$sub,$msg,$header)){ 134 135 $query = "INSERT INTO mail_log(date, test, test2, test3, test4, test5) values('$systemDate', '$test2', '$test3', '$test4', '$test5', 'NG')"; 136 $result = $mysqli -> query($query); 137 $mysqli->close(); 138 139 }else{ 140 141 $query = "INSERT INTO mail_log(date, test, test2, test3, test4, test5) values('$systemDate', '$test2', '$test3', '$test4', '$test5', 'OK')"; 142 $result = $mysqli -> query($query); 143 $mysqli->close(); 144 145 } 146 147?>
お時間のある時、ご教授をお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/29 10:13
2016/09/29 10:52
2016/09/30 01:51