Intereting Posts
Как избежать использования временных запросов во многих случаях? MSQL: как перезаписать запись, только если новая выше? еще создать новую запись Комплексный запрос пользователя codeignitor Импортные заказы в Magento через CSV Статистика обнаружения JavaScript / браузера Codeigniter validation_errors () всегда возвращает пустой Попытка «вызвать» хранимые процедуры с помощью CodeIgniter Разбор vCard в php сортировка массива в порядке DESC Сортировка массива с помощью строк DateTime? Запрос на отправку всегда завернут дополнительным текстом Переопределить общедоступный метод в подклассе таким образом, чтобы ограничивать доступ к общедоступным данным, сохраняя при этом доступ к родительскому классу? Как вызвать файл phtml на странице cms, чтобы установить заголовок страницы Пользовательский serialize_handler для настраиваемого php SessionHandler (хранилище БД) Как создать собственный модуль Divi?

Как обрабатывать исключение Swift_TransportException в Silex

У меня есть спокойная странная проблема с улавливанием исключений SwiftMailer в Silex. Я хочу отправить электронное письмо следующим образом:

try { $message = \Swift_Message::newInstance() ->setSubject('subject') ->setFrom(array('form')) ->setTo(array('to')) ->setBody('body'); $app['mailer']->send($message); } catch (\Swift_TransportException $e) { $app['logger']->addError('Unable to send welcome email'); } 

Я знаю, что он не собирается отправлять какие-либо письма на localhost, и я ожидаю, что это сбой, но почему я не могу поймать исключение Swift_TransportException в блоке try - catch ?

Он просто печатает:

 Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host localhost [Connection refused #61]' 

Письма не отправляются немедленно, когда вы вызываете send() , вместо этого они попадают в буфер памяти, который очищается во время выключения приложения, когда ответ уже отправлен. Это улучшает работу пользователя, так как ответ можно отправлять гораздо быстрее.

У меня также возникла проблема с отправкой писем на моем локальном хосте – я избавился от исключения с этим кодом:

 /// config $app['swiftmailer.options'] = array( 'host' => 'smtp.1und1.de', 'port' => '465', 'username' => 'xxx', 'password' => 'yyy', 'encryption' => 'ssl', 'auth' => 'login', ); // bootstrap $app->register(new Silex\Provider\SwiftmailerServiceProvider(), array( 'swiftmailer.options' => $app['swiftmailer.options'] ));