フォームの送信時にメールを送信する機能があります。この関数には、次の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は、指定された変数の内容をテキストファイルに書き込む関数です。この「デバッグ」コードを追加すると、電子メールが再び送信され始め、ログには「getintoif」が正しく記録されます。前述のデバッグコードを削除すると、電子メールが再度送信されなくなります。
ここで何が起こっているのか、私は戸惑っています。誰かがこのようなものに出くわしたことがありますか?デバッグコードが削除されたときにメールが送信されないのはなぜですか?さらに情報が必要な場合はお知らせください。ありがとう!
PSコードはPHPで記述されており、サーバーはPHP5.3.10を実行しています。