Skip to content

Commit 1563361

Browse files
committed
Use Swift_TransportException for Mailgun & SES
1 parent ab29010 commit 1563361

File tree

2 files changed

+27
-15
lines changed

2 files changed

+27
-15
lines changed

src/Illuminate/Mail/Transport/MailgunTransport.php

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
namespace Illuminate\Mail\Transport;
44

55
use GuzzleHttp\ClientInterface;
6+
use GuzzleHttp\Exception\GuzzleException;
67
use Swift_Mime_SimpleMessage;
8+
use Swift_TransportException;
79

810
class MailgunTransport extends Transport
911
{
@@ -68,11 +70,15 @@ public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = nul
6870

6971
$message->setBcc([]);
7072

71-
$response = $this->client->request(
72-
'POST',
73-
"https://{$this->endpoint}/v3/{$this->domain}/messages.mime",
74-
$this->payload($message, $to)
75-
);
73+
try {
74+
$response = $this->client->request(
75+
'POST',
76+
"https://{$this->endpoint}/v3/{$this->domain}/messages.mime",
77+
$this->payload($message, $to)
78+
);
79+
} catch (GuzzleException $e) {
80+
throw new Swift_TransportException('Failed to make request to Mailgun API', $e->getCode(), $e);
81+
}
7682

7783
$messageId = $this->getMessageId($response);
7884

src/Illuminate/Mail/Transport/SesTransport.php

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
namespace Illuminate\Mail\Transport;
44

5+
use Aws\Exception\AwsException;
56
use Aws\Ses\SesClient;
67
use Swift_Mime_SimpleMessage;
8+
use Swift_TransportException;
79

810
class SesTransport extends Transport
911
{
@@ -43,16 +45,20 @@ public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = nul
4345
{
4446
$this->beforeSendPerformed($message);
4547

46-
$result = $this->ses->sendRawEmail(
47-
array_merge(
48-
$this->options, [
49-
'Source' => key($message->getSender() ?: $message->getFrom()),
50-
'RawMessage' => [
51-
'Data' => $message->toString(),
52-
],
53-
]
54-
)
55-
);
48+
try {
49+
$result = $this->ses->sendRawEmail(
50+
array_merge(
51+
$this->options, [
52+
'Source' => key($message->getSender() ?: $message->getFrom()),
53+
'RawMessage' => [
54+
'Data' => $message->toString(),
55+
],
56+
]
57+
)
58+
);
59+
} catch (AwsException $e) {
60+
throw new Swift_TransportException('Failed to make request to AWS SES API', $e->getCode(), $e);
61+
}
5662

5763
$messageId = $result->get('MessageId');
5864

0 commit comments

Comments
 (0)