如何使用 PHPMailer 发送电子邮件?
PHPMailer 是一个代码库,用于从 Web 服务器通过PHP代码安全、轻松地发送电子邮件。通过PHP代码直接发送电子邮件需要高度熟悉 SMTP 标准协议以及有关垃圾邮件电子邮件注入的相关问题和漏洞。 PHPMailer 简化了发送电子邮件的过程,并且非常易于使用。
安装:安装 PHPMailer 的最佳方式是使用composer。在继续之前,请确保安装 Composer。
- 打开命令提示符并转到要在其中使用 PHPMailer 的项目目录。
- 运行以下命令:
composer require phpmailer/phpmailer
- 等待安装完成。它会将所有必需的类下载到您的项目文件夹中。
使用 PHPMailer:
将 PHPMailer 类导入全局命名空间。
注意:确保这些行位于脚本的顶部,而不是在任何函数。
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
加载作曲家的自动加载器。
require 'vendor/autoload.php';
创建一个 PHPMailer 类对象。
$mail = PHPMailer()
配置服务器设置:
- SMTPDebug:用于显示有关连接问题和发送电子邮件的消息。它具有以下值:
- 0:默认值。禁用调试。
- 1:显示客户端发送的输出消息。
- 2:同1,加上显示从服务器收到的响应。
- 3:作为 2,加上更多关于初始连接的信息——这个级别可以帮助诊断 STARTTLS 失败。
- 4:同3,加显示更底层的信息。
- isSMTP():设置邮件程序使用 SMTP。
- isMail():设置邮件程序使用 PHP 的邮件函数。
- 主机:指定服务器。
- SMTPAuth:启用/禁用 SMTP 身份验证。
- 用户名:指定用户名。
- 密码:指定密码。
- SMTPSecure:指定加密技术。接受值 'tls' 或 'ssl'。
- 端口:指定要连接的 TCP 端口。
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.gfg.com;'; // Specify main SMTP server
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'user@gfg.com'; // SMTP username
$mail->Password = 'password'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, 'ssl' also accepted
$mail->Port = 587; // TCP port to connect to
添加邮件的收件人。
$mail->setFrom('from@gfg.com', 'Name'); // Set sender of the mail
$mail->addAddress('receiver1@gfg.net'); // Add a recipient
$mail->addAddress('receiver2@gfg.com', 'Name'); // Name is optional
添加附件(如果有)。
$mail->addAttachment('url', 'filename'); // Name is optional
添加内容。
- isHTML():如果传递为 true,则将电子邮件格式设置为 HTML。
- 主题:设置邮件的主题。
- 正文:设置邮件的内容。
- AltBody:电子邮件客户端不支持 HTML 时的替代正文。
$mail->isHTML(true);
$mail->Subject = 'Subject';
$mail->Body = 'HTML message body in bold!';
$mail->AltBody = 'Body in plain text for non-HTML mail clients';
最后,发送电子邮件。
$mail->send();
您的电子邮件将被发送。
程序:使用PHPMailer 发送电子邮件的完整PHP程序。
SMTPDebug = 2;
$mail->isSMTP();
$mail->Host = 'smtp.gfg.com;';
$mail->SMTPAuth = true;
$mail->Username = 'user@gfg.com';
$mail->Password = 'password';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom('from@gfg.com', 'Name');
$mail->addAddress('receiver1@gfg.com');
$mail->addAddress('receiver2@gfg.com', 'Name');
$mail->isHTML(true);
$mail->Subject = 'Subject';
$mail->Body = 'HTML message body in bold ';
$mail->AltBody = 'Body in plain text for non-HTML mail clients';
$mail->send();
echo "Mail has been sent successfully!";
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
?>