Maison  >  Article  >  développement back-end  >  Comment intégrer des images dans des e-mails HTML à l'aide de PHPMailer ?

Comment intégrer des images dans des e-mails HTML à l'aide de PHPMailer ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-23 00:43:03607parcourir

How to Embed Images in HTML Emails Using PHPMailer?

Comment intégrer des images dans un e-mail HTML

Envoyer des e-mails HTML avec des images intégrées peut être difficile. De nombreuses solutions s'appuient sur des ressources externes, ce qui peut entraîner l'échec du chargement des images en raison de filtres anti-spam ou de restrictions des clients de messagerie.

Pour surmonter ces problèmes, envisagez d'utiliser une bibliothèque fiable telle que PHPMailer. Explorons comment utiliser PHPMailer pour intégrer des images :

La documentation de PHPMailer fournit d'excellents conseils sur l'affichage d'images intégrées (en ligne). Il recommande d'utiliser la fonction AddEmbeddedImage :

<code class="php">$mail->AddEmbeddedImage(filename, cid, name);</code>

où :

  • filename est le chemin d'accès au fichier image
  • cid est l'ID de contenu utilisé pour lier le image dans l'e-mail HTML
  • name est le nom du fichier qui sera affiché

Par exemple :

<code class="php">$mail->AddEmbeddedImage('my-photo.jpg', 'my-photo', 'my-photo.jpg ');</code>

Pour incorporer l'image intégrée dans l'e-mail HTML, insérez une balise img avec l'attribut src défini sur la valeur cid :

<code class="html"><img src="cid:my-photo" alt="my-photo" /></code>

Voici un exemple de code complet :

<code class="php">require_once('../class.phpmailer.php');
$mail = new PHPMailer(true);

$mail->IsSMTP();

try {
  $mail->Host       = "mail.yourdomain.com";
  $mail->Port       = 25;
  $mail->SetFrom('from@example.com', 'From Name');
  $mail->AddAddress('to@example.com', 'To Name');
  $mail->Subject = 'PHPMailer Test';

  $mail->AddEmbeddedImage("rocks.png", "my-attach", "rocks.png");
  $mail->Body = 'Your <b>HTML</b> with an embedded Image: <img src=&quot;cid:my-attach&quot;> Here is an image!';

  $mail->Send();
} catch (phpmailerException $e) {
  echo $e->errorMessage();
} catch (Exception $e) {
  echo $e->getMessage();
}</code>

Ce code construit l'e-mail HTML avec l'image intégrée et envoie en utilisant SMTP. Vous pouvez adapter cet exemple pour envoyer des e-mails par d'autres moyens ou utiliser différentes méthodes fournies par PHPMailer, telles que CreateBody pour récupérer le contenu du message et l'envoyer manuellement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn