我有一个在提交表单时发送电子邮件的功能。此函数包含以下 if 语句:
if ($guestDetails)
{
$mailer->addRecipient($guestDetails->email);
$mailer->addCC( $config->get('emails_admin_email'));
$mailer->setSubject( $subject );
$mailer->setBody($template_layout);
$mailer->IsHTML($mode);
$mailer->setSender(array( $mailfrom, $fromname ));
$sent = $mailer->send();
}
最近,此功能已停止工作(即不再发送电子邮件)。为了调查发生了什么,我修改了代码以记录一些变量,因为 PHP 错误日志中没有记录任何内容。这是 if 语句现在的样子:
$testArr = array();
ClassName::_log_r("guestdetails", $guestDetails);
if ($guestDetails)
{
ClassName::_log_r("got into if", $testArr);
$mailer->addRecipient($guestDetails->email);
$mailer->addCC( $config->get('emails_admin_email'));
$mailer->setSubject( $subject );
$mailer->setBody($template_layout);
$mailer->IsHTML($mode);
$mailer->setSender(array( $mailfrom, $fromname ));
$sent = $mailer->send();
ClassName::_log_r("mailer", $mailer);
ClassName::_log_r("sent", $sent);
} else
ClassName::_log_r("got into else", $testArr);
_log_r 只是一个将给定变量的内容写入文本文件的函数。一旦我添加了这个“调试”代码,电子邮件就会再次开始发送,并且日志正确记录了“进入 if”。删除上述调试代码会阻止再次发送电子邮件。
我对这里可能发生的事情感到困惑。有没有人遇到过这样的事情?为什么删除调试代码后不发送电子邮件?如果需要更多信息,请告诉我。谢谢!
PS代码是用PHP编写的,服务器运行的是PHP 5.3.10