0

ivフォームコードにヘッダーフィールドを追加しましたが、メールを受信すると、メールの「差出人」フィールドに文字化けしたコードが表示され、メッセージの送信者のメールアドレスは表示されません。これは私のメッセージ処理コードです:

<?php session_start();
if(isset($_POST['Submit'])) {   if( $_SESSION['chapcha_code'] == $_POST['chapcha_code'] && !empty($_SESSION['chapcha_code'] ) ) {
$youremail = 'I removed my address for privacy on stack overflow';
$fromsubject = 'A message from your website';
$title = $_POST['title'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$mail = $_POST['mail'];
$address = $_POST['address']; 
$city = $_POST['city']; 
$zip = $_POST['zip']; 
$country = $_POST['country']; 
$phone = $_POST['phone']; 
$subject = $_POST['subject']; 
$message = $_POST['message']; 
$headers = "From: $nome <$mail>\r\n";

    $to = $youremail; 
    $mailsubject = 'Message received from'.$fromsubject.' Contact Page';
    $body = $fromsubject.'

    The person that contacted you is  '.$fname.' '.$lname.'
     Address: '.$address.'
    '.$city.', '.$zip.', '.$country.'
     Phone Number: '.$phone.'
     E-mail: '.$mail.'
     Subject: '.$subject.'

     Message: 
     '.$message.'

    |---------END MESSAGE----------|'; 
echo "Thank you for your feedback. I will contact you shortly if needed.<br/>Go to <a href='/index.php'>Home Page</a>"; 
                                mail($to, $subject, $body);
        unset($_SESSION['chapcha_code']);
   } else {
        echo 'Sorry, you have provided an invalid security code';
   }
 } else { 
echo "You must write a message. </br> Please go to <a href='/contact.php'>Contact Page</a>"; 
}
?> 
4

2 に答える 2

1

$nomeコード内でも次の場所でも宣言していません$mail

$headers = "From: $nome <$mail>\r\n";

さらに、このコメントで言及されているように、ヘッダーをメール関数に渡さなかった。メール関数の4番目のパラメーターを参照してください。

于 2012-09-07T13:48:05.777 に答える
1

ここで^From:ヘッダー`を宣言しました:

$headers = "From: $nome <$mail>\r\n";

ただし、電話をかけるときには使用されませんmail()

mail($to, $subject, $body);

$headers4番目のパラメーターとして渡す必要があります。それ以外の場合、ヘッダーは有効になりません

mail($to, $subject, $body, $headers);
于 2012-09-07T14:05:40.723 に答える