名前に特殊文字 (é à ö など) が含まれている人にメールを送信するコードを PHP で作成するのに問題があります。コーディングのスニペットは次のとおりです。
$firstname = html_entity_decode(($row[firstname]), ENT_QUOTES | ENT_IGNORE, "UTF-8");
$lastname = html_entity_decode(($row[lastname]), ENT_QUOTES | ENT_IGNORE, "UTF-8");
$tofirst = html_entity_decode(($row[firstname]), "UTF-8");
$tolast = html_entity_decode(($row[firstname]), "UTF-8");
$to = $tofirst .' '.$tolast .' <'. $email .'>';
$subject = 'Your submission to the X-tension Dancebase';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Cc: dancers@x-tension.nl, chris@x-tension.nl' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
$headers .= 'From: X-tension Danceproductions <info@x-tension.nl>' . "\r\n" .
'Reply-To: info@x-tension.nl' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
if(mail($to, $subject, $message, $headers)) {
echo 'Successfully send an email to: '.$firstname.' '.$lastname.' <'.$email.'><br/>';
} else {
if ((trim($email)) == "") {
echo "Please fill out e-mail address and 'save profile' first";
} else {
echo 'error in mail script';
}
}
名前とメールアドレスを入力するページのエンコードはUTF-8に設定されています。データベースのコーディングは UTF-8 に設定されています。ご覧のとおり、メール メッセージのヘッダーは UTF-8 に設定されています。
名前を保存する場合としない場合で、htmlentitiesオプションを使用して試しました。名前の取得中となしで、html_entity_decodeオプションを使用して試しました。
名前は電子メール メッセージの HTML 本文にもあり、そこには正しく表示されますが、$to 変数の名と姓は表示されずに電子メールが到着するか、電子メールが到着しないときに表示される可能性があります。
どんな助けでも本当に感謝しています。
マリン