|
17 | 17 | use Symfony\Component\Mailer\SmtpEnvelope; |
18 | 18 | use Symfony\Component\Mailer\Transport\Http\Api\AbstractApiTransport; |
19 | 19 | use Symfony\Component\Mime\Email; |
| 20 | +use Symfony\Component\Mime\NamedAddress; |
20 | 21 | use Symfony\Contracts\HttpClient\HttpClientInterface; |
21 | 22 |
|
22 | 23 | /** |
@@ -60,11 +61,15 @@ private function getPayload(Email $email, SmtpEnvelope $envelope): array |
60 | 61 | 'html' => $email->getHtmlBody(), |
61 | 62 | 'text' => $email->getTextBody(), |
62 | 63 | 'subject' => $email->getSubject(), |
63 | | - 'from_email' => $envelope->getSender()->toString(), |
| 64 | + 'from_email' => $envelope->getSender()->getAddress(), |
64 | 65 | 'to' => $this->getRecipients($email, $envelope), |
65 | 66 | ], |
66 | 67 | ]; |
67 | 68 |
|
| 69 | + if ($envelope->getSender() instanceof NamedAddress) { |
| 70 | + $payload['message']['from_name'] = $envelope->getSender()->getName(); |
| 71 | + } |
| 72 | + |
68 | 73 | foreach ($email->getAttachments() as $attachment) { |
69 | 74 | $headers = $attachment->getPreparedHeaders(); |
70 | 75 | $disposition = $headers->getHeaderBody('Content-Disposition'); |
@@ -104,10 +109,16 @@ protected function getRecipients(Email $email, SmtpEnvelope $envelope): array |
104 | 109 | $type = 'cc'; |
105 | 110 | } |
106 | 111 |
|
107 | | - $recipients[] = [ |
108 | | - 'email' => $recipient->toString(), |
| 112 | + $recipientPayload = [ |
| 113 | + 'email' => $recipient->getAddress(), |
109 | 114 | 'type' => $type, |
110 | 115 | ]; |
| 116 | + |
| 117 | + if ($recipient instanceof NamedAddress) { |
| 118 | + $recipientPayload['name'] = $recipient->getName(); |
| 119 | + } |
| 120 | + |
| 121 | + $recipients[] = $recipientPayload; |
111 | 122 | } |
112 | 123 |
|
113 | 124 | return $recipients; |
|
0 commit comments