【发布时间】:2012-10-06 20:02:05
【问题描述】:
您好,我使用了一个教程来学习在 php 中发送带有可选附件的电子邮件所需的中等难度的标题信息。我对其进行了一些修改,它按预期工作,直到我将其更改为与教程完全匹配以进行测试。一旦我测试它,几秒钟后我检查了我的电子邮件,并且已经向我发送了 21 封电子邮件。我立即从服务器上删除了文件并关闭了页面。我想知道究竟是什么导致了这种行为。
在 mail() 函数之后,我立即设置了一个重定向到我想要的页面。
if (mail($mailto, $subject, "", $header)) {
header("Location: $redirectUrl");
exit;
}
其中 $header 是半页长。是导致它的 header() 函数吗?该页面只是说页面重定向时间太长。我对转义/非转义字符有问题吗?我只调用一次该函数,它不包含在任何类型的 for 循环或 do while 中。页面本身不包含在其他任何地方。
【问题讨论】:
-
好吧,
$redirectUrl是什么?现在的代码没有任何问题,除非$redirectUrl导致header()将您重定向回相同的脚本。 -
它只是重定向到同一站点但不同目录的单独页面。
-
PHP 的
mail()函数很糟糕。我会强烈推荐使用像phpMailer 这样的邮件类。无论您使用mail()做什么,它都会让您的生活更轻松。 -
@Matt
$redirectUrl有可能实际上是空的吗?如果发生这种情况,重定向可能会出现不可预知的行为。尝试将其设置为硬编码值,看看会发生什么。 -
@NullUserException 嗯......不,但也许它超出了范围?我在脚本的顶部定义了它,然后我调用了我的 mail_with_attachment 函数(),其中 mail() 函数 itelsef 位于其中,并且我没有将变量传递给函数。是这个原因吗?