[PHP-users 27744] メールの件名が文字化けします
仲里 実
nakazato @ mx2.freecom.ne.jp
2005年 12月 3日 (土) 11:51:59 JST
こんにちは。
OKIといいます。
よろしくお願いします。
私はHPを通じてあるサービスを提供しています。
間違ったメールアドレスで申し込まれないために下記のようなアドレスを確認
するPHPを作ってアドレスの確認を行っていました。
最近、レンタルサーバーのトラブルでサーバーのファイルが全部、消えてしまっ
て、復旧しています。
下記のPHPも以前と同じ物を設置しているはずなのですが、どうしてもメール
の件名が文字化けしてしまいます。
(メールの本文は文字化けしません。)
どこに間違いがあるのか、もし分かる方がいらっしゃいましたら教えて頂けれ
ば幸いです。
----------------------------------------------------------------------
<html><body>
<?php
//値を受け取る
$addres = $_POST['addres'];
// ファイルを書き込み専用でオープンする
$fp = @fopen('dir.txt','w');
//ディレクトリを開いて中身のファイル名を書き出す
if ($handle = opendir('./file/')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
@fputs($fp,"./file/$file\r\n");
}
}
closedir($handle);
}
// ファイルをクローズする
@fclose($fp);
// ファイルを読み込み専用でオープンする
$fp = fopen('dir.txt', 'r');
// 終端に達するまでループ
while (!feof($fp)) {
// ファイルから一行読み込む
$line = fgets($fp);
$line = rtrim($line);
// ファイルの更新時間を調べる
$kousin = filemtime("$line");
// 今の時刻
$ima = time();
// 経過時間を計算する
$keika = $ima - $kousin;
clearstatcache();
if ( $keika > 864000 && $line != './file/index.html' ) {
@unlink( "$line" );
}
}
// ファイルをクローズする
fclose($fp);
//8桁の乱数を作る
srand((double)microtime()*1000000);
$r = rand();
while (!ereg('[a-zA-Z]',substr(md5($r),0,10)) || !ereg('[0-9]',substr(md5($r),0,4))) {
$r = rand();
}
$ransu = substr(md5($r),0,10);
// ファイルを読み込み専用でオープンする
$fp = fopen('mousikomi.html', 'r');
// ファイルを書き込み専用でオープンする
$fw = fopen("./file/$ransu.html", 'w');
// 終端に達するまでループ
while (!feof($fp)) {
// ファイルから一行読み込む
$line = fgets($fp);
// 文字列の置換
$beginner = "$line";
$replace = "iraimail";
$scriptphp = "$addres";
$word = str_replace($replace, $scriptphp, $beginner);
$beginner = "$word";
$replace = "ransu";
$scriptphp = "$ransu";
$word2 = str_replace($replace, $scriptphp, $beginner);
// 読み込んだ行を書き込みする
fputs($fw,"$word2");
}
// ファイルをクローズする
fclose($fp);
fclose($fw);
//メールの設定
mb_language("Japanese");
mb_internal_encoding ("SJIS");
/* 送信先 */
$to = "$addres"; // カンマで区切る
/* 題名 */
$subject = "アドレス確認";
//メッセージの内容
$hensinmail = implode ('', file ('hensin.txt'));
//文字列置換
$beginner = "$hensinmail";
$replace = "iraimail";
$scriptphp = "$addres";
$message1 = str_replace($replace, $scriptphp, $beginner);
$beginner = "$message1";
$replace = "ransu";
$scriptphp = "$ransu";
$message2 = str_replace($replace, $scriptphp, $beginner);
/* 追加ヘッダ */
$headers .= "From: bzj00220 @ nifty.com\r\n";
$headers .= "Bcc: patio @ elf.coara.or.jp\r\n";
/* ここでメールを送信する */
mail($to, $subject, $message2, $headers);
//お礼ページを表示。
$thanks = implode ('', file ('thanks.html'));
$beginner = "$thanks";
$replace = "iraimail";
$scriptphp = "$addres";
$thankshtml = str_replace($replace, $scriptphp, $beginner);
echo "$thankshtml";
?>
</body></html>
--
OKI <nakazato @ mx2.freecom.ne.jp>
PHP-users メーリングリストの案内