Home >Backend Development >PHP Tutorial >How to Embed Images in HTML Email with PHPMailer?

How to Embed Images in HTML Email with PHPMailer?

Barbara Streisand
Barbara StreisandOriginal
2024-10-23 00:32:02699browse

How to Embed Images in HTML Email with PHPMailer?

Embedding Images in HTML Email: A Comprehensive Solution

Sending HTML emails with embedded images can enhance user engagement and provide a more visually appealing experience. However, achieving this can present certain challenges.

To simplify this process, utilizing a library like PHPMailer is highly recommended. PHPMailer automates many common issues associated with email sending and provides support for inline image attachments.

Embedding Images with PHPMailer

PHPMailer offers an intuitive function for adding embedded images to HTML emails:

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

For instance, to embed an image named "rocks.png" with the CID "my-attach", use the following code:

<code class="php">$mail->AddEmbeddedImage("rocks.png", "my-attach", "rocks.png");</code>

Complete HTML Email Example

Below is a complete example of how to send an HTML email with an embedded image using PHPMailer:

<code class="php">require_once('../class.phpmailer.php');

$mail = new PHPMailer(true);
$mail->IsSMTP();

try {
  // SMTP server settings
  $mail->Host = "mail.yourdomain.com";
  $mail->Port = 25;

  // Sender and recipient information
  $mail->SetFrom('[email protected]', 'First Last');
  $mail->AddAddress('[email protected]', 'John Doe');

  // Email subject and embedded image
  $mail->Subject = 'PHPMailer Test';
  $mail->AddEmbeddedImage("rocks.png", "my-attach", "rocks.png");

  // HTML body with embedded image
  $mail->Body = 'Your <b>HTML</b> with an embedded Image: <img src=&quot;cid:my-attach&quot;> Here is an image!';

  // Send the email
  $mail->Send();
  echo "Message Sent OK<p></p>\n&quot;;
} catch (phpmailerException $e) {
  echo $e->errorMessage();
} catch (Exception $e) {
  echo $e->getMessage();
}</code>

Customizing Email Sending with PHPMailer

While PHPMailer supports sending emails via SMTP by default, it offers flexibility to customize the sending process. If you prefer other email sending methods, you can still utilize PHPMailer to compose the email and use its capabilities, including embedded image handling.

<code class="php">// Retrieve the message content
$mime_message = $mail->CreateBody();

// Send the email using your preferred custom method
echo $mime_message; // Echo it to the screen or send it using whatever method you want</code>

The above is the detailed content of How to Embed Images in HTML Email with PHPMailer?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn