如何使用 swiftmailer 在电子邮件中添加图像?

How to add an image in an email with swiftmailer?

我正在尝试在电子邮件中添加图片。 我使用 Symfony 4 和 SwiftMailer。 我阅读了文档和论坛,但它不起作用。 所以我尝试了:

 $message = (new \Swift_Message('Title of the email'))
                        ->setFrom('myemailadress@xxxxxx.com')
                        ->setTo($data['email']);

                    $headers = $message->getHeaders();

                    $attachment = \Swift_Attachment::fromPath('assets/img/logo.png');

                    $headers = $attachment->getHeaders();
 $message->setBody(
                        $this->renderView(
                            'resetemail.html.twig',
                            [ 'resetPassword' => $resetPassword], $headers
                        ),
                        'text/html'
                    );
$mailer->send($message);
                    return $this->redirectToRoute("requestMail");

对于 Twig,我做了:

<img id="customHeaderImage" align="top" label="Image" src="headers" alt="the title of the logo" class="w640" border="0" style="display: inline">

我还尝试将 headers' 部分替换为: $img = $message->embed(Swift_Image::fromPath('assets/img/logo.png'));

但我只有:

如果您有解决方案,我很乐意阅读。

谢谢。

你能试试 $message->embed(Swift_Image::fromPath('/assets/img/logo.png'))

这是我找到的解决方案:

$message = (new \Swift_Message('Title of the email'))
                        ->setFrom('myemailadress@xxxxxx.com')
                        ->setTo($data['email'])
                        ->attach(\Swift_Attachment::fromPath('build/logo.png')->setFilename('logo.png'));

所以我将图片附加到我的消息中并给它命名。

在我的 Twig 中,我只是将名称放在 img 的 src 中。