web-dev-qa-db-fra.com

Envoyer un email avec PHPMailer - Intégrer l'image dans le corps

J'essaie d'envoyer un courrier HTML, avec PHPMailer, avec des images. Le corps est chargé à partir d'un fichier html contenant toutes les informations.

Lors de l'envoi du courrier, l'image n'apparaît pas dans le corps, même si j'envoie même l'image également en pièce jointe.

HTML <img> tag pointe vers le même endroit que le lieu.

PHP:

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

Comment puis-je faire en sorte que le html pointe sur la pièce jointe afin que l'image puisse être chargée dans le corps.

En regardant l'exemple fourni avec PHPMailer, je ne remarque aucune différence, et dans leur cas, l'image apparaît.

89
elvispt

J'ai trouvé la réponse:

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

et sur le <img> tag mis src='cid:logo_2u'

191
elvispt

Selon Manuel PHPMailer , la réponse complète serait:

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

Cas d'utilisation :

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

Si vous souhaitez afficher une image avec une URL distante:

$mail->addStringAttachment(file_get_contents("url"), "filename");
0