1

名前に特殊文字 (é à ö など) が含まれている人にメールを送信するコードを 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 変数の名と姓は表示されずに電子メールが到着するか、電子メールが到着しないときに表示される可能性があります。

どんな助けでも本当に感謝しています。

マリン

4

0 に答える 0