Wyślij e-mail za pomocą PHPMailera - umieść obraz w treści


97

Próbuję wysłać pocztę HTML za pomocą PHPMailera z obrazami. Treść jest ładowana z pliku html, który zawiera wszystkie informacje.

Podczas wysyłania maila obraz nie pojawia się w treści, chociaż wysyłam nawet obraz również jako załącznik.

<img>Znacznik HTML wskazuje to samo miejsce co to miejsce.

PHP:

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

Jak ustawić kod HTML na załącznik, aby obraz mógł zostać załadowany do treści.

Patrząc na przykład dołączony do PHPMailera nie widzę żadnej różnicy, aw ich przypadku obraz się pojawia.

Odpowiedzi:


206

Znalazłem odpowiedź:

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

i na <img>metce umieścićsrc='cid:logo_2u'


3
To doskonale pomaga !!! Z ciekawości, gdzie to znalazłeś? Proszę wytłumacz.
— mtk

Dlaczego lewy ukośnik na końcu pliku CID?
— Plummer

Zrobiłem to tak dawno temu, nie pamiętam, czy był jakiś powód. Myślę, że nie ma. Najprawdopodobniej tylko śmieci.
— elvispt

8
Uważam, że lewy ukośnik został omyłkowo pozostawiony w poprzednim kodzie, który uniknął cudzysłowów, na przykład echo "src=\"cid:logo_2u\""i nie wierzę, że lewy ukośnik jest konieczny.
— Okrutny

9
Kto potrzebuje wyjaśnień od osoby niebędącej ekspertem: musisz poinformować silnik renderujący, skąd ma pobrać obraz i za pomocą jakiego protokołu (aby użyć załączonego obrazu, użyj protokołu de cid, Content-ID). I używasz AddEmbeddedImage, aby nadać identyfikator załącznikowi, abyś mógł się do niego odwołać (
— pamiętaj

3

Zgodnie z podręcznikiem PHPMailer , pełna odpowiedź brzmi:

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

Przypadek użycia :

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

Jeśli chcesz wyświetlić obraz ze zdalnym adresem URL:

$mail->addStringAttachment(file_get_contents("url"), "filename");
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.