使用phpMailer可高效实现PHP邮件发送,需通过composer安装并配置SMTP参数。以qq邮箱为例,设置smtp.qq.com为服务器,端口465,启用ssl加密,并使用授权码认证。创建PHPmailer实例后,配置发件人、收件人、主题及html内容,再调用send方法发送。建议开启调试模式排查问题,避免频繁发送以防被判定为垃圾邮件。常见邮箱如Gmail需开启两步验证并使用应用专用密码,163邮箱则可能需尝试不同端口。封装为工具类并结合模板引擎可提升可维护性。

使用PHPMailer发送邮件是php开发中常见的需求,尤其在用户注册、密码找回、通知提醒等场景中非常实用。PHPMailer是一个功能强大且易于使用的第三方库,支持SMTP认证、附件上传、HTML邮件内容等功能。下面介绍如何配置和使用PHPMailer实现邮件发送。
安装PHPMailer
推荐通过Composer安装PHPMailer,这是最简单且维护性最好的方式。
- 打开终端,进入项目目录,执行命令:
- 安装完成后,自动引入autoload文件即可使用:
composer require phpmailer/phpmailer
require ‘vendor/autoload.php’;
基本配置与发送邮件
以下是一个使用QQ邮箱或Gmail通过SMTP发送邮件的示例代码。
- 引入PHPMailer类:
- 创建PHPMailer实例并设置参数:
- 设置发件人和收件人:
- 设置邮件内容:
- 发送邮件并处理异常:
use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerSMTP; use PHPMailerPHPMailerException;
$mail = new PHPMailer(true); $mail->isSMTP(); // 使用SMTP协议 $mail->Host = ‘smtp.qq.com’; // qq邮箱SMTP服务器 $mail->SMTPAuth = true; // 开启SMTP认证 $mail->Username = ‘your_email@qq.com’; // 发件邮箱账号 $mail->Password = ‘your_password_or_auth_code’; // 邮箱授权码(非登录密码) $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // 使用SSL加密 $mail->Port = 465; // 端口465
$mail->setFrom(‘your_email@qq.com’, ‘Sender Name’); $mail->addAddress(‘recipient@example.com’, ‘Recipient Name’);
$mail->isHTML(true); // 支持HTML格式 $mail->Subject = ‘测试邮件标题’; $mail->Body = ‘
这是一封测试邮件
支持HTML内容
立即学习“PHP免费学习笔记(深入)”;
‘; $mail->AltBody = ‘纯文本版本内容’;
try { $mail->send(); echo ‘邮件发送成功’; } catch (Exception $e) { echo “邮件发送失败: {$mail->ErrorInfo}”; }
常见邮箱SMTP配置参考
不同邮箱服务商的SMTP设置略有差异,以下是常用配置:
- QQ邮箱:
- SMTP服务器: smtp.qq.com
- 端口: 465(SSL)
- 加密方式: SSL
- 注意:需开启SMTP服务并使用“授权码”代替密码
- SMTP服务器: smtp.gmail.com
- 端口: 465(SSL)或 587(TLS)
- 加密方式: PHPMailer::ENCRYPTION_SMTPS 或 ENCRYPTION_STARTTLS
- 需开启“两步验证”并生成应用专用密码
- SMTP服务器: smtp.163.com
- 端口: 465 或 994
- 部分情况下可能不稳定,建议使用企业邮箱
Gmail:
163邮箱:
注意事项与优化建议
确保邮件系统稳定运行,需要注意以下几点:
- 不要使用明文密码,优先使用邮箱提供的“授权码”
- 生产环境建议启用SMTP调试模式排查问题:
- 避免频繁发送,防止被服务商判定为垃圾邮件
- 可封装成工具类,便于项目中复用
- 建议配合模板引擎处理HTML邮件内容,提升可维护性
$mail->SMTPDebug = SMTP::DEBUG_SERVER; // 输出调试信息
基本上就这些。只要配置正确,PHPMailer能稳定支持各类邮件发送需求。不复杂但容易忽略细节,比如授权码和加密方式的选择。


