php电子邮件没有收到发送

时间:2012-12-08 22:01:57

标签: php

我只是想知道是否有人在这里看到任何错误,代码执行但我从未收到电子邮件,有任何建议吗?

$to = $_POST['to_email'];
$subject = $_POST['subject'];
$message='<p><b>Message:</b> '.str_replace("\n.", "\n..", $_POST['message']).'</p>';

$headers = "From: " . strip_tags($_POST['from_email']) . "\r\n";
$headers .= "Reply-To: ". strip_tags($_POST['from_email']) . "\r\n".
        'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

2 个答案:

答案 0 :(得分:1)

mail()函数只使用sendmail unix / linux命令发送邮件。如果配置错误,则无法正常工作

如果您有权使用php ini,请查看[mail]部分

smtp = SMTPSERVER (windows)
smtp_port = 25    (Windows)
sendmail_path= (unix)

答案 1 :(得分:0)

这取决于PHP的设置。

PHP可以做很多事情 - 最常见的是将电子邮件排入本地邮件服务器(在Linux上常见,在Windows上不太常见)或与外部邮件中继对话并在那里排队邮件(通常需要身份验证,除非它是一个罕见的开放中继)。也可以写入文件。

如果没有警告,mail()函数保证的所有内容都是电子邮件已排队到php.ini文件中指定的位置。

首先要检查邮件是否报告成功...

$Success = @mail($to, $subject, $message, $headers);
if(!$Success) {
    print "Failed to queue email";
}

您需要做的下一件事是检查php.ini配置,了解电子邮件的配置方式。确保它指向具有正确凭据的有效邮件服务器。如果您使用的是Linux并使用postfix之类的本地邮件服务器,请检查它是否正在运行(类似/etc/init.d/postfix status,具体取决于您的发行版)

如@FlorianKasper所述,SMTP作为选项仅适用于Windows。如果您可以准确说明您正在使用的操作系统,我们可能会提供进一步的帮助。