0

この問題は、見栄えの良い html コンタクト フォーム デザインを作成することと、プレーン テキスト メールではなく html テーブルを介してユーザーが送信したメールを受け入れることに関する問題でした。

これは私が使用しているコードです。これは PHP での最初の作業であり、Web ベースのメール アカウント (gmail) を使用している場合は正常に動作しています。

ただし、レシピエントを別のアカウント(クライアントドメインの電子メールアカウント)に移動すると、認識されていない文字が受け入れられます??????? しかし、何かのような

זוהי ×¤× ×™×” בקשר לבדיקת מייל × ×•×¡

ブラウザを介してGmailで前に言ったように、この場合の言語はヘブライ語ですが、たとえば件名または本文の以下のコードでわかるように、それは完璧です

このコードには何が欠けているので、gmail web メールだけでなく大丈夫でしょうか?

<?php
$field_name = $_POST['sender_name'];
$field_telephon = $_POST['sender_telephon'];
$field_email = $_POST['sender_mail'];
$field_Subject = $_POST['sender_Subject'];
$field_message = $_POST['sender_message'];
$StrDivOpen = "<div dir='rtl'>";
$StrDivClose = "</div>";
$StrTableOpen = "<table border='1' style='width:260px; font-family:Arial;'>";
$StrTableClose = "</table>";
$StrTrOpen ="<tr>";
$StrTdOpenHd = "<td style='background-color:#fcf7da; width:100px;'>";
$StrTdOpenCont = "<td style='background-color:#dae3a5; width:130px;'>"; 
$StrTrClose="</tr>";
$StrTdClose="</td>";
$StrBr = "<br />";

$mail_to = 'v7host@gmail.com';
$subject = 'לקוח HostDns, בשם  : '.$field_name." , נושא:  ".$field_Subject;
$body_message = $StrDivOpen.$StrTableOpen;
$body_message .= $StrTrOpen.$StrTdOpenHd.'מאת  :  '.$StrTdClose.$StrTdOpenCont.$field_name.$StrTdClose.$StrTrClose;
$body_message .= $StrTrOpen.$StrTdOpenHd.'טלפון  :    '.$StrTdClose.$StrTdOpenCont.$field_telephon.$StrTdClose.$StrTrClose;
$body_message .= $StrTrOpen.$StrTdOpenHd.'כתובת מייל  :    '.$StrTdClose.$StrTdOpenCont.$field_email.$StrTdClose.$StrTrClose;

$body_message .= "<tr><td colspan=2 style='background-color:#1cbfbf;'>תוכן ההודעה  :    </td></tr><tr><td colspan=2 style='background-color:#81c3b2;'>".$StrBr.$field_message."</td></tr></table></div>";

$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$headers .= "Content-type: text/html; charset=ISO-8859-1";
$mail_status = mail($mail_to, $subject, $body_message, $headers);

if ($mail_status) { ?>
    <script language="javascript" type="text/javascript">
        alert('Thanks for the post. We will contact you soon..');
        window.location = 'contact.html';
    </script>
<?php
}
else { ?>
    <script language="javascript" type="text/javascript">
        alert('Sending failed. Please send an email to v7host@gmail.com');
        window.location = 'contact.html';
    </script>
<?php
}
?>
4

1 に答える 1

1

エンコーディングを UTF-8 に変更する必要があります。

Content-type: text/html; charset=utf-8

現在使用しているエンコーディング (ISO/IEC 8859-1) では、非西洋言語の文字を処理できません。

于 2013-02-23T12:28:26.657 に答える