Фатальная ошибка:Неперехваченное исключение..используя PHP SwiftMailer
-
12-09-2019 - |
Вопрос
Я использую SwiftMailer для отправки писем, и если я попытаюсь использовать фиктивный адрес электронной почты, например, если я наберу «asdf» в адресе электронной почты, я получу это неперехваченное исключение.
Fatal error: Uncaught exception 'Swift_RfcComplianceException' with message
'Address in mailbox given [asdf] does not comply with RFC 2822,
Я не очень опытен в ОО..так не знаешь, как с этим справиться?На самом деле я просто хочу, чтобы он потерпел неудачу, если адрес электронной почты недействителен, но он не должен выдавать сообщение о фатальной ошибке.Какие-либо предложения?
Спасибо.
Решение
Вам нужно перехватить исключение, вот так
try
{
// Your code to send the email
}
catch (Swift_RfcComplianceException $e)
{
print('Email address not valid:' . $e->getMessage());
}
Это не объектно-ориентированная вещь, это исключения вещь.
Другие советы
Кроме того, вы можете проверить электронное письмо перед его отправкой:
if(!Swift_Validate::email($email)){ //if email is not valid
//do something, skip them
$log_error->log($email);
}
Я думаю, это означает, что данный адрес электронной почты не соответствует стандартам адресов электронной почты.
Если адрес электронной почты действителен, судя по сообщению об ошибке, убедитесь, что в адресе нет пробелов в начале или в конце.например.запустите обрезку($email_address).