-1

我在网页上有一个表格,它使用该PHP mail()功能通过电子邮件发送详细信息。表格很长,我还包括电子邮件的 HTML 格式。
如果我不包含所有表单信息,电子邮件发送正常,但是当我尝试包含整个表单时,电子邮件不会发送。当我包含太多信息时,它似乎停止工作。一旦我取出一些信息,它就会再次起作用,我删除信息的哪一部分并不重要。
我已经在两个不同的网站主机上尝试了同样问题的表单。电子邮件的内容只有大约 300 行,所以我不确定大小是否是问题。

有谁知道可能导致问题的原因?

这是我的代码供您参考

当我在上面说“停止工作”时,我的意思只是该mail()函数返回 false 并且不发送电子邮件。实际形式工作正常。

4

2 回答 2

1

当您在 PHP 脚本中遇到如此多的 HTML 时,将其捕获在一个变量中而不是将每一行都放在一个 $body 变量中是很有用的。

ob_start();
?>
<html>
   Your HTML.
</html>
<?
$body = ob_get_clean();

这样,您可以更轻松地查看您的消息是否有问题破坏了邮件功能。

于 2012-09-28T11:51:55.343 回答
1

下面是php邮件功能的说明。本文档连同本文档,什么是 PHP 邮件字符限制,指定正文的每一行不得超过 70 个字符。

这个 stackoverflow,What is the maximum length of a string in PHP以及其他来源表明 PHP 没有特定限制,除了您的字符串似乎远远低于的总内存限制。

还有几个不同的地方可能会发生故障,并且您没有指定您看到的故障行为。

首先,检查 mail() 的返回值以确定 PHP 是否能够将消息传递给邮件代理 MTA。接下来确保您指定收件地址和返回地址,以便如果邮件代理出现问题,它能够向您发送某种描述问题的回复。

上面Undrium提供的答案的详细说明。根据他的回答,这里有一些指向其他材料的链接。

这是ob_get_clean() 文档

这是一个使用 ob_get_clear() 发送 HTML Email的示例。

于 2012-09-28T12:08:31.567 回答