Mb_Send_mailで文字化け
外部のテキストファイル(EUC)のメールテンプレートを読み込んでMb_Send_mailでメール送信するプログラムを使っているのですが、どういうわけかたまに文字化けしてしまいます。(必ずというわけではありません。5回に1回くらい)必ずというわけではないので、ますますわけがわかりません。PHPのバージョンは4.3.10で、PHPのソースはSJISです。レンタルサーバ側の設定はコードコンバートなどのオプションはOFFにしていると説明されました。Mb_Convert_Encodingしてみたりいろいろしてみても状況は変わらず相変わらず「何通かに一通」文字化けします。メール内容に動的に日本語を入れているわけではないので、同じ内容が化けたり化けなかったりすることに悩んでしまっています。なにとぞヒントを戴きたく。宜しくお願いします。
function SendMail() {
global $p;
# FORM INPUT
# メールテキストを開く
if (!File_Exists(MAILTXT)) { return FALSE; }
$fl = Fopen(MAILTXT, "r");
# メールタイトル(1行目)取得
$mail_sub = FGets($fl, 9182);
# メール本文取得
$mail_msg = "";
$keys = Array('email');
while (!FEof($fl)) {
$line = FGets($fl, 9182);
foreach ($keys as $key) {
$line = Str_Replace("[[$key]]", $p[$key], $line);
}
$mail_msg .= $line;
}
FClose($fl); # メールテキスト閉じる
Mb_Language("Japanese");
$whom = $p['email'];
#$mail_hed = "From: " . MAIL_FROM . "\nReturn-Path:" . MAIL_RETURN;
/* 追加ヘッダ */
$mail_hed = "From: hogehoge.com\r\n";
$mail_hed .= "Bcc:hogehoge2.com\r\n";
$mail_hed .= "Reply-To:hogehoge3.com\r\n";
return Mb_Send_Mail($whom, $mail_sub, $mail_msg, $mail_hed);
}
お礼
ありがとうございます。 sendmail付加機能とてはないということですね?