有一段时间我用我网站的联系表格中的php邮件功能发送电子邮件。最近,我发现它只是停止工作。当我用我的联系表格发送查询时,它表示已成功发送,但我没有进行任何测试进入我的收件箱..
有人在这里遇到同样的问题吗?我怎么能解决这个问题?
我检查了cpanel中的MX条目,数据是正确的。我想尝试SMTP,但我没有访问信息。
对此事有任何帮助吗?
我发现的其他信息: Web Server托管在托管公司之一。 邮件服务器托管在谷歌。
问题可能在哪里?
答案 0 :(得分:2)
问题可能出在你的托管服务提供商身上,该网站提供商“弄明白”你的表单产生了大量流量而且被阻止了。
答案 1 :(得分:1)
或者出了什么问题。请查看/var/log/mail.*
的问题。
答案 2 :(得分:1)
您是否正确验证mail()函数返回的内容?
检查你的error_log可能是一个好主意,只是为了确保它在PHP中没有任何意义。如果您可以查看邮件是否发送(使用mail函数创建一个小程序),请尝试将代码放在另一台服务器上。如果确实如此,则最有可能是您的ISP。
答案 3 :(得分:1)
以下是如何直接连接到SMTP:
$smtp = fsockopen("localhost", 25, $errno, $errstr, 15);
if(!$smtp) {
echo "failed";
}
else {
stream_set_timeout($smtp, 0, 80000);
fwrite($smtp, "HELO domainname.com\r\n");
stream_set_blocking($smtp, 0);
fwrite($smtp, "MAIL FROM:<".$from.">\r\n");
fwrite($smtp, "RCPT TO:<$to>\r\n");
fwrite($smtp, "DATA\r\n");
fwrite($smtp, "Date: ".date("r")."\r\n");
fwrite($smtp, "From: <".$from_address.">\r\n");
fwrite($smtp, "Reply-to: $replyto\r\n");
fwrite($smtp, "Subject: Test\r\n");
fwrite($smtp, "To: $to\r\n");
$outMsg .= "Whatever your email body is, then end it with a period on a new line\r\n.\r\n";
$bitesWritten = fwrite($smtp, $outMsg);
echo "Wrote $bitesWritten of " strlen($outMsg);
}
答案 4 :(得分:0)
好吧,这里的问题是托管服务器的邮件exim被破坏了。因此,托管支持必须更新它并解决问题。