2012-08-31 98 views
0

我试图找出PHP代码提交表单,即时通讯为我的朋友做的问题。它通过发送电子邮件,但问题是接收者得到一个非常奇怪的电子邮件地址。我附上了一张图片以便仔细观察。PHP的电子邮件提交表单接收器没有收到正确的sendr电子邮件地址

我的PHP代码:

<?php 
    $error = false; 
    $sent = false; 

    if(isset($_Post['name'])) { 
     if(empty($_Post['name']) || empty($_Post['email']) || empty($_Post['comments'])) { 
      $error = true; 
     } else { 

     $to = "[email protected]"; 

     $name = trim($_Post['name']); 
     $email = trim($_Post['email']); 
     $comments = trim($_Post['comments']); 

     $subject = "Contact Form"; 

     $messages = "Name: $name \r\n Email: $email \r\n Comments: $comments"; 

     $headers = 'MIME-Version: 1.0' . "\r\n"; 
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
     $headers .= "From:" . $name . "\r\n"; 
     $mailsent = mail($to, $subject, $messages, $headers); 

     if($mailsent) { 
      $sent = true; 
     } 
    } 
} 
?> 

非常感谢odd email displayed

+0

你在电子邮件中收到什么电子邮件? – user1614526

+3

你的意思是'$ _POST'而不是'$ _Post'吗? – ghoti

回答

7

它应该是这样的Sender <[email protected]>

$headers .= 'From: '.$name.' <'.$email.'>' . "\r\n"; 
+0

那就是那个,谢谢 –

2

给你的头添加

$headers .= "Reply-To: $replyEmail\r\n"; 
2

的From:头应该包括电子邮件地址和名字,像

"From:My Display Name<[email protected]>\r\n" 
0

嗨,这不是一个错误..如果你提供SENDER EMAIL那么它会显示发件人而不是这个,否则它会占用我们的主机地址。

2
<?php 
    $error = false; 
    $sent = false; 

    if(isset($_Post['name'])) { 
     if(empty($_Post['name']) || empty($_Post['email']) || empty($_Post['comments'])) { 
      $error = true; 
     } else { 

     $to = "[email protected]"; 

     $name = trim($_Post['name']); 
     $email = trim($_Post['email']); 
     $comments = trim($_Post['comments']); 

     $subject = "Contact Form"; 

     $messages = "Name: $name \r\n Email: $email \r\n Comments: $comments"; 

     $headers = 'MIME-Version: 1.0' . "\r\n"; 
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
     $headers .= 'From: '.$name.' <[email protected]>' . "\r\n"; 
     $mailsent = mail($to, $subject, $messages, $headers); 

     if($mailsent) { 
      $sent = true; 
     } 
    } 
} 
?> 

试试这个。只需更改标题。

$headers .= 'From: '.$name.' <[email protected]>' . "\r\n"; 
相关问题