[Mailer] Mailjet - properly format Cc and Bcc for API
This commit is contained in:
parent
fc2133087d
commit
e038605dca
@ -85,25 +85,17 @@ class MailjetApiTransport extends AbstractApiTransport
|
|||||||
[$attachments, $inlines, $html] = $this->prepareAttachments($email, $html);
|
[$attachments, $inlines, $html] = $this->prepareAttachments($email, $html);
|
||||||
|
|
||||||
$message = [
|
$message = [
|
||||||
'From' => [
|
'From' => $this->formatAddress($envelope->getSender()),
|
||||||
'Email' => $envelope->getSender()->getAddress(),
|
'To' => $this->formatAddresses($this->getRecipients($email, $envelope)),
|
||||||
'Name' => $envelope->getSender()->getName(),
|
|
||||||
],
|
|
||||||
'To' => array_map(function (Address $recipient) {
|
|
||||||
return [
|
|
||||||
'Email' => $recipient->getAddress(),
|
|
||||||
'Name' => $recipient->getName(),
|
|
||||||
];
|
|
||||||
}, $this->getRecipients($email, $envelope)),
|
|
||||||
'Subject' => $email->getSubject(),
|
'Subject' => $email->getSubject(),
|
||||||
'Attachments' => $attachments,
|
'Attachments' => $attachments,
|
||||||
'InlinedAttachments' => $inlines,
|
'InlinedAttachments' => $inlines,
|
||||||
];
|
];
|
||||||
if ($emails = $email->getCc()) {
|
if ($emails = $email->getCc()) {
|
||||||
$message['Cc'] = implode(',', $this->stringifyAddresses($emails));
|
$message['Cc'] = $this->formatAddresses($emails);
|
||||||
}
|
}
|
||||||
if ($emails = $email->getBcc()) {
|
if ($emails = $email->getBcc()) {
|
||||||
$message['Bcc'] = implode(',', $this->stringifyAddresses($emails));
|
$message['Bcc'] = $this->formatAddresses($emails);
|
||||||
}
|
}
|
||||||
if ($email->getTextBody()) {
|
if ($email->getTextBody()) {
|
||||||
$message['TextPart'] = $email->getTextBody();
|
$message['TextPart'] = $email->getTextBody();
|
||||||
@ -117,6 +109,19 @@ class MailjetApiTransport extends AbstractApiTransport
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function formatAddresses(array $addresses): array
|
||||||
|
{
|
||||||
|
return array_map([$this, 'formatAddress'], $addresses);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function formatAddress(Address $address): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'Email' => $address->getAddress(),
|
||||||
|
'Name' => $address->getName(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
private function prepareAttachments(Email $email, ?string $html): array
|
private function prepareAttachments(Email $email, ?string $html): array
|
||||||
{
|
{
|
||||||
$attachments = $inlines = [];
|
$attachments = $inlines = [];
|
||||||
|
Reference in New Issue
Block a user