Ответ 1
Обычно Zend_Mail
генерирует исключение, если что-то не так происходит в процессе отправки, но это сильно зависит от используемого Zend_Mail_Transport_*
.
У вас есть два варианта:
-
Zend_Mail_Transport_Sendmail
(транспорт по умолчанию) зависит отmail()
. Еслиmail()
возвращаетfalse
,Zend_Mail_Transport_Sendmail
выбрасываетZend_Mail_Transport_Exception
(Невозможно отправить почту). Само возвращаемое значение не очень надежное. В этом руководстве говорится о возвращаемом значении:Возвращает TRUE, если почта была успешно принята к доставке, в противном случае FALSE.
Важно отметить, что только потому, что почта была принята для доставки, это НЕ означает, что почта действительно достигнет назначенного адресата.
-
Zend_Mail_Transport_Smtp
отправляет электронное письмо по протоколу SMTP, заключенному вZend_Mail_Protocol_Smtp
. В этом случае вы получитеZend_Mail_Protocol_Exception
всякий раз, когда что-либо нарушает SMTP-протокол (отправка почты без указания адреса отправителя, например), или сервер STMP сообщает об ошибке или времени соединения.Итак, если при разговоре с сервером STMP не возникает исключение, вы можете быть уверены, что удаленный сервер по крайней мере принял вашу электронную почту.