[英]how to send mail in php with image as body of the mail using PHP 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.