4

您好,我对 PHP 还很陌生,目前还不太了解。我修改了一个联系表格,遇到了一些关于邮件直接进入垃圾邮件的问题。

我认为这是因为(未知发件人)一直显示在电子邮件标题中的原因。如果有人可以帮助我纠正这个问题,我将不胜感激。以下是我在网站中实现的代码:

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: Wirral PT Enquiry'; 
$to = 'joebloggs@hotmail.com'; 
$subject = 'Wirral PT Enquiry';
$human = $_POST['human'];
$headers = "enquiry@wirralpt.co.uk";
$body = "From: $name\n E-Mail: $email\n Message:\n $message";

if ($_POST['submit']) {
    if ($name != '' && $email != '') {
        if ($human == '2') {                 
            if (mail ($to, $subject, $body, $from)) { 
            echo '<p>Your message has been sent!</p>';
            } else { 
                echo '<p>Something went wrong, go back and try again!</p>'; 
            } 
        } else if ($_POST['submit'] && $human != '4') {
            echo '<p> 1+1=2!! </p>';
        }
    } else {
        echo '<p>You need to fill everything!!</p>';
    }
} 
?>
4

4 回答 4

5

$from = 'From: Wirral PT Enquiry'; 应包含“发件人”电子邮件地址,而不仅仅是名称:

 $from = 'From: Wirral PT Enquiry <enquiry@wirralpt.co.uk>'; 

试试看?

于 2013-01-14T15:47:32.190 回答
1

尝试使用

$headers = "Reply To :enquiry@wirralpt.co.uk";

可能对你有用

还,

$headers = "From :enquiry@wirralpt.co.uk";

使用相关的电子邮件 ID 尝试这两种方法

于 2013-01-14T15:47:38.850 回答
1

将您的标题更改为:

$headers = 'From: enquiry@wirralpt.co.uk' . "\r\n" .
    'Reply-To: enquiry@wirralpt.co.uk' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

你的邮件应该是这样的:

mail ($to, $subject, $body, $headers)
于 2013-01-14T15:50:23.370 回答
-2

如果在使用 PhpMailer 的 SMTP 设置时,也可能导致此错误,$mail->IsSMTP(); 错过了

于 2015-09-18T17:09:13.143 回答