使用PHP发送电子邮件:PHPMailer库完全指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

PHPMailer库:使用PHP进行专业电子邮件发送



发送电子邮件是任何现代Web应用程序的关键功能之一。PHP内置函数mail()通常不够灵活和安全:它不支持SMTP认证、TLS/SSL加密、发送带附件的HTML邮件,并且在共享主机上有时无法正常工作。解决这些问题的方法是使用PHPMailer库,它已成为PHP发送电子邮件的事实标准。



什么是PHPMailer?

PHPMailer是一个功能强大且易于使用的库,用于从PHP脚本发送电子邮件。它支持:

  • 通过SMTP服务器发送(Gmail、Yandex、Mail.ru、企业邮箱);
  • TLS和SSL加密;
  • 带附件的HTML邮件(图片、PDF、文档);
  • UTF-8编码,支持任何语言(中文、俄语等);
  • 为不支持HTML的邮件客户端提供纯文本替代内容;
  • DKIM和SPF签名以防止垃圾邮件;
  • 通过本地sendmail或内置mail()作为后备方案工作。


安装PHPMailer

最简单的方法是通过Composer。在终端中,在项目根目录下执行以下命令:

composer require phpmailer/phpmailer

如果不使用Composer,可以从GitHub下载压缩包并手动引入文件:

require_once '/路径/到/PHPMailer/src/PHPMailer.php';require_once '/路径/到/PHPMailer/src/SMTP.php';require_once '/路径/到/PHPMailer/src/Exception.php';


通过Gmail SMTP发送邮件的基本示例

我们来看一个通过Gmail SMTP服务器发送邮件的最小配置。注意:您需要在Google账户设置中创建一个应用密码(或使用安全性较低的“允许不够安全的应用程序”选项)。

<?phpuse PHPMailer\\PHPMailer\\PHPMailer;use PHPMailer\\PHPMailer\\SMTP;use PHPMailer\\PHPMailer\\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try { // 服务器设置 $mail->SMTPDebug = SMTP::DEBUG_OFF; // 调试模式(0 - 关闭,2 - 详细) $mail->isSMTP(); // 使用SMTP $mail->Host = 'smtp.gmail.com'; // SMTP服务器 $mail->SMTPAuth = true; // 启用认证 $mail->Username = 'your-email@gmail.com'; // SMTP用户名 $mail->Password = 'your-app-password'; // SMTP密码(应用密码) $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // SSL $mail->Port = 465; // SSL端口(TLS使用587)

// 发件人和收件人 $mail->setFrom('from@example.com', '发件人姓名'); $mail->addAddress('to@example.com', '收件人姓名'); // 可以添加多个 $mail->addReplyTo('reply@example.com', '回复地址');

// 附件(可选) $mail->addAttachment('/路径/到/文件.pdf', '文件名.pdf');

// 邮件内容 $mail->isHTML(true); // HTML格式 $mail->Subject = '来自PHPMailer的问候!'; $mail->Body = '<b>这是一封HTML邮件</b>,包含中文文本。'; $mail->AltBody = '这是为不支持HTML的邮件客户端提供的替代文本。';

$mail->send(); echo '邮件发送成功';} catch (Exception $e) { echo "错误:{$mail->ErrorInfo}";}?>


通过Yandex邮箱发送

对于Yandex邮箱,参数变化不大。重要提示:需要在邮箱设置中允许通过IMAP/SMTP协议访问,并创建应用密码(如果启用了两步验证)。

$mail                    

推荐