函数PHP无法发送到电子邮件

函数PHP无法发送到电子邮件,php,function,email,Php,Function,Email,我的PHP文件中有一个邮件函数。当我删除该文件时,它不会给我任何错误消息,但也不会发送电子邮件。我已经安装并启动了Mercury Mail 这是我的密码: $result = mysql_query("select email from user where username='$username'"); $email = mysql_result($result, 0, "email"); $from = "another_emailgmail.

我的PHP文件中有一个邮件函数。当我删除该文件时,它不会给我任何错误消息,但也不会发送电子邮件。我已经安装并启动了Mercury Mail

这是我的密码:

$result = mysql_query("select email from user
                        where username='$username'");
$email = mysql_result($result, 0, "email");
$from = "another_emailgmail.com";
$mesg = "Your password have been changed";



if (mail($email, "Login information", $mesg, $from))
    return true;

我在看另一篇类似的文章,但他们似乎没有安装Mercury Mail,也没有同样的问题。

此代码解决了更改电子邮件地址的问题!。mail函数返回bool值,如果返回TRUE,则必须检查系统日志和系统电子邮件spool,以查找路由错误或类似内容

<?php
if(mail('some_email@gmail.com','E-mail subject',"E-mail body\r\n")){
  echo 'Works'."\n";
}else{
  echo 'Failed'."\n";
}
标题可以设置如下

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

试试这个。根据需要更改字段。只需根据需要更改数据

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "To: $mydata->name <$mydata->email>" . "\r\n";
$headers .= "From: demo.com <contact@demo.com>" . "\r\n";

mail($mydata->email, $subject, $message, $headers);

您不需要在电子邮件地址变量中使用“From:”,并引用email:-$email='some_email@gmail.com';请提供更多调试信息。错误信息是什么?日志里有什么/var/log/mail.err例如,/var/log/php5 fpm.log,…似乎这不是问题。它没有给我任何错误消息,但我没有收到电子邮件。它给了我作品,但我仍然没有收到任何消息。是的,它是正确的。您的问题不在PHP方面,而在SMTP软件方面。PHP只是将发送委托给您的SMTP,也就是PHP不直接发送任何电子邮件。您必须查看SMTP日志以查找错误。
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "To: $mydata->name <$mydata->email>" . "\r\n";
$headers .= "From: demo.com <contact@demo.com>" . "\r\n";

mail($mydata->email, $subject, $message, $headers);