Я использовал PHP mail()
функция.
Если бы почта не посылает ни за какой причиной, я хотел бы повторить сообщение об ошибке. Как я сделал бы это?
Что-то как
$this_mail = mail('example@example.com', 'My Subject', $message);
if($this_mail) echo 'sent!';
else echo error_message;
Спасибо!
отправка почты на php не является одноэтапным процессом. mail () возвращает истину / ложь, но даже если он возвращает истину, это не означает, что сообщение будет отправлено. все mail () добавляет сообщение в очередь (с помощью sendmail или того, что вы установили в php.ini)
, нет надежного способа проверить, было ли сообщение отправлено на php. Вам нужно будет просмотреть журналы почтового сервера.
Вы можете использовать почтовую программу PEAR , которая имеет тот же интерфейс, но возвращает PEAR_Error при возникновении проблем.
Как говорили другие, для отправки почты нет отслеживания ошибок, она возвращает логический результат добавления почты в исходящую очередь. Если вы хотите отслеживать истинный успех, попробуйте использовать SMTP с почтовой библиотекой, такой как Swift Mailer, Zend_Mail или phpmailer.
Нет сообщения об ошибке, связанного с функцией mail ()
. Только истина
или ложь
возвращается в зависимости от того, было ли письмо принято для доставки. Не о том, будет ли он в конечном итоге доставлен, а о том, существует ли домен и является ли адрес правильно отформатированным адресом электронной почты.