【问题标题】:php mail function only working on local server and not on remote serverphp邮件功能仅适用于本地服务器而不适用于远程服务器
【发布时间】:2011-05-24 10:59:09
【问题描述】:

正如标题一样,我在 HTML 中创建了一个简单的表单

您可以在http://thee-l.comuv.com/send.php 看到它,这会向我发送一封电子邮件,其中指定了主题和正文文本我在 Apache 的 localhost 上运行它,我在不到一分钟的时间内进入我的收件箱,然后我将它上传到远程服务器网站,它根本不给我发电子邮件

我有一个 gmail 地址,所以为了方便起见,我用 smtp2go 制作了一个外发 smtp 服务器,这是我的第一封 php 发送的电子邮件,我真的很高兴,马上把它放在远程服务器上,我们就在这里

我正在使用 000webhost

这是我的代码

<?php
if ($_POST['submit']){
ini_set("SMTP", "smtp2go.com");
ini_set("smtp_port", 2525);
$to = "lsworkemail112@gmail.com";
$subj = $_POST['topic'];
$body = $_POST['message'];
$header = "From: lsworkemail112@gmail.com";
if (mail($to, $subj, $body, $header))
{
echo "Message sent successfully";
}
else
{
echo "Message sent unsuccessfully";
}
}
else
{
echo "<html>
<form method=\"post\" action=\"send.php\">
Topic: <br/><input type=\"text\" name=\"topic\"/><br/>
Message: <br/><textarea name=\"message\"></textarea><br/>
<input type=\"submit\" value=\"Send\" name=\"submit\"/>
</form>
</html>";
}

?>

【问题讨论】:

  • 你能提供代码吗?发生这种情况的原因有很多。

标签: remote-server php localserver


【解决方案1】:

检查您的网络托管公司关于外发邮件的政策。可能有每日限制,完全禁止,或者可能是您必须要求的额外服务。几乎所有托管公司都会采取措施限制 send() 函数的使用,以防止垃圾邮件发送者利用他们的服务器。

【讨论】:

  • 我也想到了第一件事。不过,我检查了一下,000webhost 明确提到允许mail()。你是对的,他可能在测试时达到了限制,但他让它听起来好像从来没有在他的网络主机上工作过。
  • 我记得当我测试一个 mail() 函数时,我不小心在脚本中写了一个无限循环。还好我给自己发邮件。在这个月剩下的时间里脚本停止工作之前,我在大约一分钟内收到了大约 500 封电子邮件。
【解决方案2】:

我尝试点击您的链接,但显然您的网站正在审核中(可能是因为您的测试发送的邮件过多/怀疑是垃圾邮件?)。即使这样,链接到.php 页面也不会显示代码,因为服务器会执行它并将结果发送到浏览器。最好将代码复制/粘贴到问题中。

另外,正如@Computerish 所说,您的主机可能刚刚遇到限制。您今天运行了多少次mail() 代码?

【讨论】:

  • 我给自己发了 4 次电子邮件,然后在服务器上尝试了 smtp2go 让我每天做 10 次
  • @Luck:你能把代码复制到你的问题中吗?代码循环可能存在问题或导致您超出限制的某些问题,或者可能存在其他问题。如果不确切地看到它在做什么,很难弄清楚它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多