Home  >  Article  >  Backend Development  >  How to send HTML mail with pictures using PHP and PHPMAILER?

How to send HTML mail with pictures using PHP and PHPMAILER?

WBOY
WBOYOriginal
2023-07-21 09:21:291703browse

How to send HTML emails with images using PHP and PHPMailer?

Email plays an important role in modern communication, but sending HTML emails with images may confuse some PHP developers. In this article, we will introduce how to use PHP and PHPMailer to send HTML emails with images. We'll provide code examples to help you better understand how to achieve this.

First, we need to make sure that the PHPMailer library is installed in our project. You can install it by adding the following code to your composer.json file:

"require": {
    "phpmailer/phpmailer": "~6.0"
}

Once the PHPMailer library is installed, we can start writing the code to send HTML emails with images.

use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;

require 'vendor/autoload.php';

// 实例化PHPMailer对象
$mail = new PHPMailer(true);

try {
    // 服务器设置与身份验证
    $mail->SMTPDebug = 0;                                 // 0 = 关闭调试输出
    $mail->isSMTP();                                      // 通过SMTP发送
    $mail->Host = 'smtp.example.com';                     // 设置SMTP服务器
    $mail->SMTPAuth = true;                               // 启用SMTP身份验证
    $mail->Username = 'your-email@example.com';           // 您的邮箱用户名
    $mail->Password = 'your-email-password';              // 您的邮箱密码
    $mail->SMTPSecure = 'tls';                            // 启用TLS加密,可选
    $mail->Port = 587;                                    // 设置SMTP端口号

    // 发件人与收件人设置
    $mail->setFrom('your-email@example.com', 'Your Name');        // 发件人邮箱和姓名
    $mail->addAddress('recipient@example.com', 'Recipient Name'); // 收件人邮箱和姓名

    // 邮件内容设置
    $mail->isHTML(true);                                   // 将邮件格式设置为HTML
    $mail->Subject = '这是一封带有图片的HTML邮件';             // 邮件主题

    // 邮件正文
    $mail->Body = '<h1>Hello World!</h1>
                   <p>这是一封带有图片的HTML邮件。<br>
                   图片示例:<br>
                   <img src="cid:image1" alt="Image" width="200px"></p>';

    // 附件-图片
    $mail->AddEmbeddedImage('/path/to/image.jpg', 'image1');   // 替换"image1"为您要嵌入的图片cid

    // 发送邮件
    $mail->send();
    echo '邮件发送成功!';
} catch (Exception $e) {
    echo '邮件发送失败:' . $mail->ErrorInfo;
}

The above code example demonstrates how to use the PHPMailer library to send HTML emails with images. We first instantiate the PHPMailer object and set the SMTP server and authentication information in the object. Next, we set the sender and recipient information.

When setting the email content, we set the isHTML method to true to specify the email format as HTML. We also set the email subject and body. In the body, we use HTML markup to create a simple HTML page that contains an embedded image. The src attribute of the a1f02c36ba31691bcfe87b2722de723b tag is set to cid:image1, so that the image is embedded into the email at the same time.

Finally, we attach the image to the email using the AddEmbeddedImage method and give the image a unique cid. Please make sure to replace the path and image cid in the sample code with your own information.

Once all settings are completed, we call the send method to send the email. After the sending is successful, "Email sent successfully!" will be output; if the sending fails, specific error information will be output.

Hope this article can help you use PHP and PHPMailer to send HTML emails with images. This way you can send richer and more varied email content to your recipients.

The above is the detailed content of How to send HTML mail with pictures using PHP and 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