From b6f62bd9bc89d74fb06fcbc233b607c84c43768e Mon Sep 17 00:00:00 2001 From: Vlad Date: Mon, 27 Nov 2017 20:32:11 -0500 Subject: [PATCH] Catches exceptions during sending --- lib/Mailer/Methods/AmazonSES.php | 12 ++++++++---- tests/unit/Mailer/Methods/AmazonSESTest.php | 10 ++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/lib/Mailer/Methods/AmazonSES.php b/lib/Mailer/Methods/AmazonSES.php index 6ea4025aa7..0fe40525e5 100644 --- a/lib/Mailer/Methods/AmazonSES.php +++ b/lib/Mailer/Methods/AmazonSES.php @@ -50,10 +50,14 @@ class AmazonSES { } function send($newsletter, $subscriber, $extra_params = array()) { - $result = wp_remote_post( - $this->url, - $this->request($newsletter, $subscriber, $extra_params) - ); + try { + $result = wp_remote_post( + $this->url, + $this->request($newsletter, $subscriber, $extra_params) + ); + } catch(\Exception $e) { + return Mailer::formatMailerSendErrorResult($e->getMessage()); + } if(is_wp_error($result)) { return Mailer::formatMailerConnectionErrorResult($result->get_error_message()); } diff --git a/tests/unit/Mailer/Methods/AmazonSESTest.php b/tests/unit/Mailer/Methods/AmazonSESTest.php index fa97d353c8..dc1bde9be1 100644 --- a/tests/unit/Mailer/Methods/AmazonSESTest.php +++ b/tests/unit/Mailer/Methods/AmazonSESTest.php @@ -216,6 +216,16 @@ class AmazonSESTest extends \MailPoetTest { expect($result['response'])->false(); } + function testItCatchesSendingErrors() { + $invalid_subscriber = 'john.@doe.com'; + $result = $this->mailer->send( + $this->newsletter, + $invalid_subscriber + ); + expect($result['response'])->false(); + expect($result['error_message'])->contains('does not comply with RFC 2822'); + } + function testItCanSend() { if(getenv('WP_TEST_MAILER_ENABLE_SENDING') !== 'true') return; $result = $this->mailer->send(