html($payload['html'], function ($message) use ($payload, $from, $name) { $message->from($from, $name)->to($payload['to'])->subject($payload['subject']); if (!empty($payload['reply_to'])) { $message->replyTo($payload['reply_to']); } foreach ($payload['attachments'] ?? [] as $attachment) { $bytes = base64_decode($attachment['content'], true); if ($bytes === false) { throw new \RuntimeException('mail_attachment_invalid'); } $part = new \Symfony\Component\Mime\Part\DataPart($bytes, $attachment['filename'], $attachment['content_type'] ?? null); if (!empty($attachment['content_id'])) { $part->asInline()->setContentId($attachment['content_id']); } $message->getSymfonyMessage()->addPart($part); } foreach ($payload['headers'] ?? [] as $key => $value) { if (in_array(strtolower($key), ['in-reply-to', 'references'], true)) { $message->getSymfonyMessage()->getHeaders()->addIdHeader($key, trim($value, '<>')); } else { $message->getSymfonyMessage()->getHeaders()->addTextHeader($key, $value); } } }); if (!$sent) { throw new \RuntimeException('mail_send_cancelled'); } return [ 'status' => in_array($driver, ['log', 'array'], true) ? 'simulated' : 'submitted', 'provider_id' => $sent->getMessageId(), ]; } }