邮件功能已停止在服务器上运行

时间:2012-05-01 09:53:26

标签: php email function sendmail

我的邮件脚本在在线服务器上。工作正常。但是不是现在。我很困惑为什么它已停止发送邮件。它显示发送电子邮件的消息,但收件箱中未收到任何电子邮件。这是我的PHP脚本:

$useremail = $_POST['myemail'];

    $friendemail = $_POST['friendemail'];

        $name = "support";

        $email = "support@example.com";

        $rec = $friendemail;

        $sub = "support Invitation";

        $body = 'the user '.$useremail.' has sent you message';

        $header="Content-type: text/html\n";

        $header .= "From: $name < ". $email ." >";

        $success_mail = mail($rec,$sub,$body,$header);
        if($success_mail){ echo "success0";} else { echo "Not sent";}

请帮助我!

1 个答案:

答案 0 :(得分:0)

IME与从PHP发送邮件相关的大多数问题都是MTA的问题,与PHP无关。如果系统已经停止发送邮件但你的PHP没有改变,那么这也可能就是这种情况。

您没有提供有关正在运行的操作系统的信息,也没有提供PHP如何配置为使用邮件 - 这在不同的操作系统上是非常不同的。

  

但收件箱中未收到任何电子邮件

在发送电子邮件和到达目的地之间有很多事情要做。通常它排队等待MTA在发送端发送,在接收端传递给MTA(可选择通过中间MTA),在接收端应用策略检查,传递给接收端的imap / pop服务(可能还有进一步的政策检查),由您的邮件客户端检索(再次进行进一步的政策检查)。

您需要查看流程的每个步骤,以找出失败的位置。

  

mysql_real_escape_string($ _ POST [&#39; friendemail&#39;]);

WTF?这是错的。

  

$ header =&#34;内容类型:text / html \ n&#34 ;;

你试图通过SMTP强制使用非7位ascii,并没有给自己带来任何好处。这些天,这不应该是一个大问题,并且不太可能是错误的原因 - 但尝试发送纯文本消息,看看会发生什么。

哦......然后再看一下你的代码我看到你发送纯文本所以WTF是html标题?

如果您想要确保可传递性,请修改电子邮件的编码,无论这是否是导致此问题的原因。