в случае, если вам нужно сделать несколько вещей в случае неудачных писем в разных местах.

лкнулся со странной проблемой с PHPmailer (версия 5.1), которую я пытаюсь обойти. Я видел здесь немало хороших отзывов, так что я решил попробовать. Я обнаружил, что при попытке создать настраиваемое подтверждающее сообщение с условным оператором на основе$mail->send()Я получаю дубликаты писем. Я могу скопировать его с помощью общего сценария testemail.php, который поставляется вместе с загрузкой phpmailer. Вот код:

require '../class.phpmailer.php';<br>try {<br>$mail = new PHPMailer(true); //New instance, with exceptions enabled<br>$mail->SMTPDebug = 1;<br>$mail->IsSMTP(); // tell the class to use SMTP<br>$mail->SMTPAuth = true; // enable SMTP authentication<br>$mail->Port = 25; // set the SMTP server port<br>$mail->Host = "mail.domain.com"; // SMTP server<br>$mail->Username = "username"; // SMTP server username<br>$mail->Password = "password"; // SMTP server password

<pre><code>$mail->IsSendmail(); $mail->From = "[email protected]"; $mail->FromName = "First Last"; $to = "[email protected]"; $mail->AddAddress($to); $mail->Subject = "PHP Mailer test"; $message = "This is a test. \n"; $mail->Body = $message; $mail->Send(); if ($mail->Send()) { echo 'Message has been sent.'; } else { echo "Mailer Error: " . $mail->ErrorInfo; } </code></pre>

} catch (phpmailerException $e) {<br>echo $e->errorMessage();<br>}

Приведенный выше код повторяет подтверждение «Сообщение отправлено», но затем отправляет два электронных письма. Если я закомментирую$mail->send() По-прежнему я получаю подтверждение «Сообщение отправлено» и получаю только одно сообщение. Если я удалю условное заявление и оставлю$mail->send() строка закомментирована, электронное письмо не отправлено.

Почему добавление условного оператора приводит к отправке электронного письма без вызова$mail->send() метод? Как правильно добавить настраиваемое подтверждающее сообщение?

Ответы на вопрос(1)

Ваш ответ на вопрос