[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 メーリングリストの案内