未在php中接收mail()函数发送的邮件[重复]

Posted

技术标签:

【中文标题】未在php中接收mail()函数发送的邮件[重复]【英文标题】:Not receiving mail sent by mail() function in php [duplicate] 【发布时间】:2015-12-19 06:38:18 【问题描述】:

下面的代码显示“邮件发送成功...”但发出的邮件没有在收件人的收件箱或垃圾邮件文件夹中收到。

<?php
    $to = "rcvr@example.com";
    $subject = "This is subject";

    $message = "<b>This is html message.</b>";
    $message .= "<h1>This is headline.</h1>";

    $header = "From:mymailid@gmail.com \r\n";
    $retval = mail ($to,$subject,$message,$header);
    if( $retval == true )
    
    echo "Message sent successfully...";
    
    else
    
    echo "Message could not be sent...";
    
?>

我已经在 php.ini 中更改了 [mail function],如下所示

[mail function]
SMTP = smtp.gmail.com
smtp_port = 587
sendmail_from = mymailid@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

和 sendmail.ini 中的 [sendmail] 像这样

smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=tls
error_logfile=error.log
pop3_server=
pop3_username=
pop3_password=
force_recipient=
hostname=

auth_username=mymailid@gmail.com
auth_password=mymailid_pass
force_sender=mymailid@gmail.com

所以一切都很好,$retval 返回 true 并回显“消息已成功发送...”但接收者不会在他的收件箱或垃圾邮件中收到它。 我还在 gmail settings-&gt;forwarding and pop/imap 中启用了 imap

【问题讨论】:

您的 gmail 配置是否正确?从您的其他帐户(雅虎等)发送测试邮件并检查您是否收到任何邮件? 你检查error.log文件了吗? @Priya - 我如何检查 error.log 文件的位置? 给出路径而不是在 sendmail.ini 中尝试这个 error_logfile=error.log 并检查日志文件。 【参考方案1】:
<?php
    $to = "rcvr@example.com";
    $subject = "This is subject";

    $message = "<b>This is HTML message.</b>";
    $message .= "<h1>This is headline.</h1>";

    $header = "From:mymailid@gmail.com \r\n";
    $retval = mail($to,$subject,$message,$header);
    if(isset($retval))//change
    
        echo "Message sent successfully...";
    
    else
    
        echo "Message could not be sent...";
    
?>

php.ini中评论以下行

sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"

Read this answer to Config Your localserver

【讨论】:

在我的php.ini 行中sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe" 不存在,只有sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" 存在,我评论了这一行但仍然无法正常工作 不是那一行。还有另一条线。搜索一次 没有。我搜索了,但只有sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" 行存在

以上是关于未在php中接收mail()函数发送的邮件[重复]的主要内容,如果未能解决你的问题,请参考以下文章

带有 xampp 和 hMailServer 的 PHP mail() [重复]

基于PHP自带的mail函数实现发送邮件以及带有附件的邮件功能

使用mail.php时没有邮件发送[重复]

PHP Mail停止工作[重复]

[PHP警告:mail():“sendmail_from”未在php.ini中设置或自定义“From:”标头丢失

通过php mail()发送html格式[重复]