Надішліть електронний лист за допомогою PHPMailer - вбудовуйте зображення в корпус


97

Я намагаюся надсилати пошту HTML із PHPMailer із зображеннями. Тіло завантажується з файлу html, що містить всю інформацію.

При відправці пошти зображення не відображається в тілі, хоча я навіть надсилаю зображення також як додаток.

<img>Тег HTML вказує на те саме місце, що і місце.

PHP:

$mail->AddAttachment('img/2u_cs_mini.jpg');

Як зробити так, щоб HTML вказував на вкладення, щоб зображення можна було завантажувати в тіло.

Дивлячись на приклад, який постачається з PHPMailer, я не помічаю ніякої різниці, і в їхньому випадку зображення справді відображається.

Відповіді:


206

Я знайшов відповідь:

$mail->AddEmbeddedImage('img/2u_cs_mini.jpg', 'logo_2u');

і на <img>тег поставитиsrc='cid:logo_2u'


3
Це чудово допомагає !!! З цікавості де ти це знайшов? Будь ласка, поясніть.
mtk

Чому зворотний косий рядок в кінці cid?
Пламмер

Я робив це так давно, не пам’ятаю, чи була навіть причина. Я не думаю, що існує. Просто трохи сміття, швидше за все.
ельвіпт

8
Я вважаю, що зворотна косої риски помилково залишилося там із попереднього коду, який уникнув котирування, як, echo "src=\"cid:logo_2u\""і я не вважаю, що зворотна косої риси є необхідною.
Жорстокий

8
Для тих, хто потребує пояснення від непрофесійного експерта: вам потрібно повідомити механізм візуалізації, звідки отримати зображення та за допомогою якого протоколу (для використання вкладеного зображення ви використовуєте de cid "протокол, Content-ID)". AddEmbeddedImage, щоб надати вкладеному файлу ідентифікатор, щоб ви могли посилатися на нього (зауважте, що це можуть бути звуки та інші типи файлів).
PhoneixS

3

Відповідно до керівництва PHPMailer , повною відповіддю буде:

$mail->AddEmbeddedImage(filename, cid, name);
//Example
$mail->AddEmbeddedImage('my-photo.jpg', 'my-photo', 'my-photo.jpg '); 

Приклад використання:

$mail->AddEmbeddedImage("rocks.png", "my-attach", "rocks.png");
$mail->Body = 'Embedded Image: <img alt="PHPMailer" src="cid:my-attach"> Here is an image!';

Якщо ви хочете відобразити зображення з віддаленою URL-адресою:

$mail->addStringAttachment(file_get_contents("url"), "filename");
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.