Heim >Backend-Entwicklung >PHP-Tutorial >Wie bette ich Bilder mit PHPMailer in HTML-E-Mails ein?

Wie bette ich Bilder mit PHPMailer in HTML-E-Mails ein?

Susan Sarandon
Susan SarandonOriginal
2024-10-23 00:43:03723Durchsuche

How to Embed Images in HTML Emails Using PHPMailer?

So betten Sie Bilder in HTML-E-Mails ein

Das Versenden von HTML-E-Mails mit eingebetteten Bildern kann eine Herausforderung sein. Viele Lösungen sind auf externe Ressourcen angewiesen, was dazu führen kann, dass Bilder aufgrund von Spam-Filtern oder E-Mail-Client-Einschränkungen nicht geladen werden.

Um diese Probleme zu lösen, sollten Sie die Verwendung einer zuverlässigen Bibliothek wie PHPMailer in Betracht ziehen. Sehen wir uns an, wie Sie PHPMailer zum Einbetten von Bildern verwenden:

Die Dokumentation von PHPMailer bietet hervorragende Anleitungen zum Anzeigen eingebetteter (Inline-)Bilder. Es wird empfohlen, die AddEmbeddedImage-Funktion zu verwenden:

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

wobei:

  • Dateiname der Pfad zur Bilddatei ist
  • cid ist die Content-ID, die zum Verknüpfen verwendet wird Bild in der HTML-E-Mail
  • Name ist der Dateiname, der angezeigt wird

Zum Beispiel:

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

Um das eingebettete Bild in die HTML-E-Mail einzubinden, Fügen Sie ein img-Tag ein, wobei das src-Attribut auf den cid-Wert gesetzt ist:

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

Hier ist ein vollständiges Codebeispiel:

<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>

Dieser Code erstellt die HTML-E-Mail mit dem eingebetteten Bild und sendet sie es über SMTP. Sie können dieses Beispiel anpassen, um E-Mails auf andere Weise zu senden, oder andere von PHPMailer bereitgestellte Methoden verwenden, z. B. CreateBody, um den Nachrichteninhalt abzurufen und manuell zu senden.

Das obige ist der detaillierte Inhalt vonWie bette ich Bilder mit PHPMailer in HTML-E-Mails ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn