邮件发送成功,但未使用PHP Mail功能发送

时间:2015-11-17 08:01:43

标签: ubuntu php terminal

我正在使用php邮件功能发送邮件,当发送电子邮件时,它表示邮件已成功发送,但邮件未送达。我已使用gmail pop3 / SMTP / Imap设置配置我的服务器。我正在使用Ubuntu,这是我的代码:

<?php
    $name = "ali";
    $email ="hello";
    $message = "adasdasfasf";
    $from = 'From: from@gmail.com'; 
    $to = 'to@gmail.com'; 
    $subject = 'Customer Inquiry';
    $body = "From: $name\n E-Mail: $email\n Message:\n $message";
        $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html\r\n";
    $headers = 'From: From: from@gmail.com' . "\r\n" .
    'Reply-To: From: from@gmail.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();




            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>'; 
            }

    ?>

2 个答案:

答案 0 :(得分:0)

您的PHP代码不好:

$headers .= "MIME-Version: 1.0\r\n";

在这里,首先附加到之前未设置的变量$ headers(因此出错)。

$headers .= "Content-type: text/html\r\n";

现在你扩展它。

$headers = 'From: From: from@gmail.com' . "\r\n" .

现在你通过覆盖其内容,删除之前设置的标题再次将它全部丢弃。

因此,它不会发送,因为您的PHP代码会产生不完整的标头。

StackOverflow更多,但代码应该是:

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html\r\n";
$headers .= 'From: from@gmail.com' . "\r\n" .

答案 1 :(得分:0)

第一次使用$ headers变量时:

$headers .= "MIME-Version: 1.0\r\n";

使用。=它想要将其添加到您没有的变量的早期使用中。将该行更改为:

$headers = "MIME-Version: 1.0\r\n";

初始化它,然后请分享结果。