Как я могу прикрепить изображение с помощью Phpmailer?

Я использую phphmailer и прикрепляю изображение, оно показывает только изображение, как значок, а не изображение, вот мой код вы могли бы помочь.

$mail->AddEmbeddedImage('2.jpg', '2img', '2.jpg');
$mail->Subject  =  "Order Form:  Contact form submitted";
$mail->Body     =  $body . 'img src="../../photo/2img" ;

note: я потерял html-тег befor img, поскольку получаю сообщение об ошибке, отправляющее этот Q.

Ответ 1

Per Руководство PHPMailer, вы можете использовать метод AddEmbeddedImage

$mail->AddEmbeddedImage(filename, cid, name);
By using this function with this example value above, results in this code:
$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!';

поэтому cid:my-attach будет заменен встроенным источником изображения, которое внутри тела электронной почты

Ответ 2

Использование функции AddEmbeddedImage() хорошо работает при показе встроенного изображения в электронных письмах в Интернете. Однако Yahoo всегда добавляет его как приложение. Чтобы преодолеть эту проблему, вы можете смело игнорировать AddEmbeddedImage() и ссылку на полный путь изображения на вашем сервере, а PHPMailer имеет возможность конвертировать его в CID, и он будет корректно отображаться как встроенное изображение, и Yahoo не добавит его как приложение больше.

В тексте сообщения html добавьте его, как обычно:

<img src="http://PATH-TO-IMAGE" alt='THIS IS THE IMAGE" />