簡體   English   中英

內聯/嵌入式圖像附件在 PHP Swift Mailer 發送的郵件中不可見

[英]inline/embedded Image attachment is not visible in mail send by PHP Swift Mailer

我正在發送帶有附件的圖像,該圖像必須顯示為內嵌圖像。

我不知道它有什么問題。 我不記得在我對郵件程序進行編碼時這是一個問題

這是電子郵件中圖片的標題

--_=_swift_1561449240_8047151997d755eb732462545a29a594_=_
Content-Type: image/png; name=logo.png
Content-Transfer-Encoding: base64
X-Attachment-Id: logo
Content-ID: <logo>
Content-Disposition: inline; filename=logo.png

這是發送帶有附件的電子郵件的功能

public function send(MailInterface $mail, array $attachments = array())
    {
        /* @var SwiftMail $swiftMail */
        $swiftMail = new SwiftMail(
            $mail->getSubject(),
            $mail->getBody(),
            "text/html"
        );

        foreach ($attachments as $contentId => $contentPath) {
            if (null != $contentPath) {

                // prepare content to be send as an attachment
                $attachment = SwiftAttachment::fromPath($contentPath);
                $attachment->setDisposition("inline");
                $attachment->getHeaders()->addTextHeader("Content-ID", "<" . $contentId . ">");
                $attachment->getHeaders()->addTextHeader("X-Attachment-Id", $contentId);

                // add the attachment to the mail
                $swiftMail->embed($attachment);
            }
        }

    /* ... etc ... */

在模板中,我將源設置為內容 ID,如下所示:

<img src="cid:<logo>">

如果您只想將電子郵件中的圖像顯示為內聯,請使用 Swift_Image

$cid = $mail->embed(\Swift_Image::fromPath('/path/to/image'));
$emailView->assign('cid', $cid);

在模板中:

<img src="{cid}" />

但要小心:它不適用於重合的 $mail->attach()。 我還不知道為什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM