我的邮件脚本在在线服务器上。工作正常。但是不是现在。我很困惑为什么它已停止发送邮件。它显示发送电子邮件的消息,但收件箱中未收到任何电子邮件。这是我的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";}
请帮助我!
答案 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标题?
如果您想要确保可传递性,请修改电子邮件的编码,无论这是否是导致此问题的原因。