양식을 제출할 때 전자 메일을 보내는 기능이 있습니다. 이 함수는 다음 if 문을 포함합니다.디버그 코드를 제거하면 PHP 메일러에서 전자 메일을 보내지 않습니다.
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 오류 로그에 아무것도 기록되지 않아 일부 변수를 기록하도록 코드를 수정했습니다. 여기에 만약 문이 지금 모습입니다 :
$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는 주어진 변수의 내용을 파일에 텍스트를 쓰는 기능입니다. 이 "디버그"코드를 추가하고 나면 전자 메일이 다시 전송되기 시작하고 로그에 "got into if"가 올바르게 기록됩니다. 위에서 언급 한 디버그 코드를 제거하면 전자 메일이 다시 전송되지 않습니다.
나는 아마도 여기서 일어날 수있는 일에 당황하고 있습니다. 누구도 이런 식으로 우연히 만났습니까? 디버그 코드를 제거 할 때 전자 메일이 전송되지 않는 이유는 무엇입니까? 자세한 정보가 필요하면 알려주십시오. 감사!
PS 코드는 PHP로 작성하고 서버가 PHP를 실행 5.3.10
코드를 추가하고 전자 메일이 전송합니까 때,이 곳으로 전송합니까 너는 그들을 갈 생각이야? 의미, 만약 당신이'ClassName :: _ log_r ("details", print_r ($ guestDetails, true));'당신은 무엇을 얻습니까? – Julian
모든 종류의 오류 메시지가 생성됩니까? 아니면 코드가 전자 메일을 보내려고 시도했지만 수신되지 않았습니까? SMTP 서버의 오류 로그에 내용이 있습니까? – andrewsi
율리우스 - 예, 이메일이 올바른 수신자에게 전송됩니다. –