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