我正在使用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>';
}
?>
答案 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";
初始化它,然后请分享结果。