php电子邮件 - 电子邮件未收到

时间:2013-07-16 10:48:14

标签: php email

直到昨天下面的代码才有效。不确定,今天下面的代码不起作用。我没有收到任何电子邮件。虽然,我正在回复正确,但我没有收到任何电子邮件。

$to = "yyyyy@yahoo.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "xxxxx@example.com";
$headers = "From:" . $from;
if (mail($to, $subject, $message, $headers)) {
    echo "right";
} else {
    echo "wrong";
}

为什么会发生这种情况?


我添加了print phpinfo();并检查了sendmail_path。我在下面找到了。

sendmail_path /usr/sbin/sendmail -t -i


答案

这是服务器问题。因此,电子邮件没有被发送。

5 个答案:

答案 0 :(得分:1)

据我所知,电子邮件是从PHP mail()函数发送的。此功能使用本地MTA传递消息。

如果您可以控制服务器及其MTA,则可以开始检查服务器的日志文件。你应该看到来自PHP mail()函数的电子邮件。如果不是这种情况,PHP似乎不会将其传递给MTA(在您的情况下是sendmail)。

如果它显示在日志中,请检查行以获取更多详细信息。原因可能在那里。如果您不确定,请发布日志内容(不要忘记屏蔽其私人详细信息)。

但如果它在日志中没有显示任何问题,可能还有其他几个原因。就像你的IP被列入黑名单一样。要查看访问以下网站http://mxtoolbox.com。但是接收电子邮件服务器也可以将电子邮件重新弹回...这将显示在服务器根目录收件箱中,您可以在其中看到其中的返回原因。

我希望这对你有帮助!?

答案 1 :(得分:0)

此处没有PHP错误,这是您的服务器设置问题。一旦将邮件发送到sendmail或您正在使用的任何内容,PHP将在mail()上返回true。它不知道电子邮件是否实际发送过。

答案 2 :(得分:0)

尝试

$message = "test 1\r\ntest 2\r\ntest 3";

$message = wordwrap($message, 70, "\r\n");

mail(SETYOURMAIL@MAIL.COM', 'My Subject', $message);

如果这不起作用,请检查php.ini

http://www.quackit.com/php/tutorial/php_mail_configuration.cfm

答案 3 :(得分:0)

解决Ubuntu中的问题,Apache。您必须确保计算机中安装了邮件发送软件!

在ubuntu中,打开终端并输入以下命令:

sudo apt-get install sendmail

之后再试一次!

答案 4 :(得分:0)

有些时候mail()函数可能无法正常工作,所以你应该使用PHPMailer,这里写的是一篇写得很好的文档:

rohitashv.wordpress.com/2013/01/19/how-to-send-mail-using-php/