📜  使用 html 发送电子邮件 php - PHP (1)

📅  最后修改于: 2023-12-03 15:06:47.016000             🧑  作者: Mango

使用 HTML 发送电子邮件 PHP

随着网络科技的快速发展,电子邮件已经成为现代通信工具中的重要组成部分。而发送电子邮件往往需要使用程序进行实现,PHP 作为一种非常流行的服务器端脚本语言,也可以用来发送电子邮件。

本文将介绍如何使用 PHP 发送电子邮件,并且使用 HTML 作为邮件的主体内容,以使邮件在视觉上更加友好。

SMTP 服务设置

在发送电子邮件之前,我们需要先进行 SMTP 服务的设置。SMTP 服务是发送邮件的协议,SMTP 服务器则是服务的提供者。我们可以使用已有的 SMTP 服务器,也可以自己搭建一个 SMTP 服务器。但是,如果你使用的是共享服务器,可能会被托管服务提供商禁止发送电子邮件,因此需要了解你的主机配置,并且最好确认一下你是否可以使用 SMTP 服务器来发送电子邮件。

下面是一些常见的 SMTP 服务器设置:

| 邮件协议 | 服务器地址 | 端口号 |
|:--------:|:----------:|:------:| | SMTP | smtp.gmail.com | 587 | | SMTP | smtp.qq.com | 465 |

接下来,我们可以定义 SMTP 服务器的地址、端口号、SMTP 认证等信息:

<?php
// SMTP 服务设置
$smtp_host = 'smtp.gmail.com';
$smtp_port = 587;
$smtp_auth = true;
$smtp_user = 'youremail@gmail.com';
$smtp_pass = 'yourpassword';

// 创建 PHPMailer 对象
require './vendor/autoload.php';
$mail = new PHPMailer\PHPMailer\PHPMailer();

// 配置 SMTP 服务器设置
$mail->isSMTP();
$mail->Host = $smtp_host;
$mail->Port = $smtp_port;
$mail->SMTPAuth = $smtp_auth;
$mail->Username = $smtp_user;
$mail->Password = $smtp_pass;
$mail->SMTPSecure = 'tls';

// 导入 HTMLMimeMail 对象
require './HTMLMimeMail5/HTMLMimeMail5.php';
$mailbody = new \HTMLMimeMail5();

// 配置邮件消息体
$mailbody->setHTML(sprintf("<html><body><h1>Hello World!</h1></body></html>"));
$mailbody->setTaskCharset('UTF-8');

// 配置邮件消息头
$mail->From = $smtp_user;
$mail->FromName = 'Your Name';
$mail->Subject = '使用 HTML 发送电子邮件 PHP';
$mail->Body    = $mailbody->get();
$mail->AltBody = '使用 HTML 发送电子邮件 PHP';

// 添加收件人
$mail->addAddress('recipient@example.com', 'Recipient Name');

// 发送邮件
if (!$mail->send()) {
    echo '邮件发送失败';
} else {
    echo '邮件发送成功';
}
?>
Markdown 代码片段

以上代码片段演示了如何定义 SMTP 服务器的参数,并使用 PHPMailer 和 HTMLMimeMail 在电子邮件中添加 HTML 内容。如果需要添加附件,则可以使用 $mail->addAttachment() 方法,并传递要添加的文件路径作为参数。

```php
// SMTP 服务设置
$smtp_host = 'smtp.gmail.com';
$smtp_port = 587;
$smtp_auth = true;
$smtp_user = 'youremail@gmail.com';
$smtp_pass = 'yourpassword';

// 创建 PHPMailer 对象
require './vendor/autoload.php';
$mail = new PHPMailer\PHPMailer\PHPMailer();

// 配置 SMTP 服务器设置
$mail->isSMTP();
$mail->Host = $smtp_host;
$mail->Port = $smtp_port;
$mail->SMTPAuth = $smtp_auth;
$mail->Username = $smtp_user;
$mail->Password = $smtp_pass;
$mail->SMTPSecure = 'tls';

// 导入 HTMLMimeMail 对象
require './HTMLMimeMail5/HTMLMimeMail5.php';
$mailbody = new \HTMLMimeMail5();

// 配置邮件消息体
$mailbody->setHTML(sprintf("<html><body><h1>Hello World!</h1></body></html>"));
$mailbody->setTaskCharset('UTF-8');

// 配置邮件消息头
$mail->From = $smtp_user;
$mail->FromName = 'Your Name';
$mail->Subject = '使用 HTML 发送电子邮件 PHP';
$mail->Body    = $mailbody->get();
$mail->AltBody = '使用 HTML 发送电子邮件 PHP';

// 添加收件人
$mail->addAddress('recipient@example.com', 'Recipient Name');

// 发送邮件
if (!$mail->send()) {
    echo '邮件发送失败';
} else {
    echo '邮件发送成功';
}