電子メールの問題で深刻な問題が発生しています。
要するに:
- HTMLテンプレートファイルの読み込み
fopen
%password
このようにマークされたいくつかの値を実際の値に置き換えるstr_replace
- 次の関数を介してメールを送信します。ここ
$content
で、はロードされたhtmlテンプレートファイルです。
パブリック関数send($ receiver、$ subject、$ content){
$header = "From:".sender. "\n";
$header .= "MIME-Version:1.0" . "\n";
$header .= "Content-type:text/html;charset=utf-8" . "\n";
$mailText = $content;
mail($receiver, $subject, stripslashes(iconv('utf-8', 'iso-8859-1', $mailText)) , $header);
}
サーバーはpostfix付きのDebianです。
メールテンプレートはで始まります
<html> <body style="background-color: #fff;"> <table border="0"...
問題は、それを再現することはできませんが、場合によっては、私がそこに入れなかったいくつかのスペースをメールで見つけることができるということです。最も問題となるのは、ユーザーとパスワードの文字列にあるものです。
他のすべては正しいようです!エンコーディングはOKで、HTMLは受け入れられ、すべてのメールを配信できます...
パスワードの生成:
public static function create_password($length = 12) {
$characters = array("a", "b", "c", "d", "e", "f", "g", "h", "k", "m", "n", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "_");
$password = "";
for($i=0; $i<$length; $i++) {
$index = rand(1, count($characters)) -1;
$password .= $characters[$index];
}
$password = str_replace("__","_", $password);
return $password;
}
アイデアはありますか、どこから検索を開始しますか?
テンプレート、str_replace、postifix、クライアント、...?
これまでのところありがとう