From 812d7a907d4caa5ea39c9f2fe00dcb96096803f8 Mon Sep 17 00:00:00 2001 From: Roberto Guido Date: Sat, 27 Jan 2024 19:23:23 +0100 Subject: [PATCH] [Mailer] [Scaleway] Fix attachment handling --- .../Scaleway/Tests/Transport/ScalewayApiTransportTest.php | 8 +++++++- .../Bridge/Scaleway/Transport/ScalewayApiTransport.php | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Mailer/Bridge/Scaleway/Tests/Transport/ScalewayApiTransportTest.php b/src/Symfony/Component/Mailer/Bridge/Scaleway/Tests/Transport/ScalewayApiTransportTest.php index 74387d234d148..0d91d002cd21c 100644 --- a/src/Symfony/Component/Mailer/Bridge/Scaleway/Tests/Transport/ScalewayApiTransportTest.php +++ b/src/Symfony/Component/Mailer/Bridge/Scaleway/Tests/Transport/ScalewayApiTransportTest.php @@ -18,6 +18,7 @@ use Symfony\Component\Mailer\Exception\HttpTransportException; use Symfony\Component\Mime\Address; use Symfony\Component\Mime\Email; +use Symfony\Component\Mime\Part\DataPart; use Symfony\Contracts\HttpClient\ResponseInterface; class ScalewayApiTransportTest extends TestCase @@ -64,6 +65,10 @@ public function testSend() $this->assertSame(['email' => 'saif.gmati@symfony.com', 'name' => 'Saif Eddin'], $body['to'][0]); $this->assertSame('Hello!', $body['subject']); $this->assertSame('Hello There!', $body['text']); + $this->assertCount(1, $body['attachments']); + $this->assertSame('attachment.txt', $body['attachments'][0]['name']); + $this->assertSame('text/plain', $body['attachments'][0]['type']); + $this->assertSame(base64_encode('some attachment'), $body['attachments'][0]['content']); return new JsonMockResponse(['emails' => [['message_id' => 'foobar']]], [ 'http_code' => 200, @@ -76,7 +81,8 @@ public function testSend() $mail->subject('Hello!') ->to(new Address('saif.gmati@symfony.com', 'Saif Eddin')) ->from(new Address('fabpot@symfony.com', 'Fabien')) - ->text('Hello There!'); + ->text('Hello There!') + ->addPart(new DataPart('some attachment', 'attachment.txt', 'text/plain')); $message = $transport->send($mail); diff --git a/src/Symfony/Component/Mailer/Bridge/Scaleway/Transport/ScalewayApiTransport.php b/src/Symfony/Component/Mailer/Bridge/Scaleway/Transport/ScalewayApiTransport.php index 3c824276a5ca5..60cb198d3b5ab 100644 --- a/src/Symfony/Component/Mailer/Bridge/Scaleway/Transport/ScalewayApiTransport.php +++ b/src/Symfony/Component/Mailer/Bridge/Scaleway/Transport/ScalewayApiTransport.php @@ -99,7 +99,7 @@ private function getPayload(Email $email, Envelope $envelope): array $payload['html'] = $email->getHtmlBody(); } if ($attachements = $this->prepareAttachments($email)) { - $payload['attachment'] = $attachements; + $payload['attachments'] = $attachements; } return $payload; @@ -115,7 +115,7 @@ private function prepareAttachments(Email $email): array $attachments[] = [ 'name' => $filename, 'type' => $headers->get('Content-Type')->getBody(), - 'content' => base64_encode($attachment->bodyToString()), + 'content' => str_replace("\r\n", '', $attachment->bodyToString()), ]; }