使用PHPMailer可轻松实现PHP邮件发送。首先通过Composer安装库,然后创建实例并配置SMTP信息(如QQ邮箱的服务器、端口、授权码),设置发件人、收件人、主题及HTML内容,最后发送并捕获异常处理结果。需注意使用邮箱授权码而非密码,正确匹配加密方式与端口(SSL-465/TLS-587),设置UTF-8编码防乱码,并规范邮件内容避免被误判为垃圾邮件。封装后可复用。

在PHP开发中,发送电子邮件是一个常见需求,比如用户注册验证、密码找回、通知提醒等。PHP本身提供了mail()函数来发送邮件,但功能有限且容易受服务器配置影响。更推荐使用强大的第三方库——PHPMailer,它支持SMTP认证、附件上传、HTML邮件内容等功能,使用灵活且兼容性好。
安装PHPMailer(推荐使用Composer)
最简单的方式是通过Composer安装PHPMailer:
composer require phpmailer/phpmailer
如果没有使用Composer,也可以从GitHub下载PHPMailer源码并手动引入文件。
基本使用步骤
以下是使用PHPMailer发送邮件的基本流程:
立即学习“PHP免费学习笔记(深入)”;
nopCommerce 是一个由ASP.NET多层模式开发的开源电子商城系统,可以自行设置模板、配置灵活、功能强大,它内含一个目录前端和一个管理工具后端。前端包括用户注册、商品购买(可以进行评论)、投票、Blog等,后端有类别管理、产品管理、客户及角色管理、订单管理、纳税管理、国家(地区管理)、邮件发送、消息模板、新闻发布、blog管理,可以对列表数据进行XML导出。
- 引入PHPMailer类文件
- 创建PHPMailer实例
- 配置SMTP服务器信息(如Gmail、QQ邮箱等)
- 设置发件人、收件人、主题和邮件内容
- 发送邮件并处理结果
示例代码:发送一封HTML格式邮件
以下是一个完整的例子,使用QQ邮箱的SMTP服务发送HTML邮件:
isSMTP();
$mail->Host = 'smtp.qq.com';
$mail->SMTPAuth = true;
$mail->Username = 'your_email@qq.com'; // 替换为你的邮箱
$mail->Password = 'your_password_or_auth_code'; // 授权码(非登录密码)
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port = 465;
// 设置字符编码
$mail->CharSet = 'UTF-8';
// 发件人
$mail->setFrom('your_email@qq.com', '网站管理员');
// 收件人
$mail->addAddress('recipient@example.com', '用户姓名');
// 可选:添加抄送或密送
// $mail->addCC('cc@example.com');
// $mail->addBCC('bcc@example.com');
// 可选:添加附件
// $mail->addAttachment('/path/to/file.pdf');
// 邮件内容
$mail->isHTML(true);
$mail->Subject = '欢迎注册我们的网站!';
$mail->Body = '欢迎加入
感谢您的注册,点击 这里 激活账户。
';
$mail->AltBody = '欢迎加入!请访问 https://example.com 激活账户。';
$mail->send();
echo '邮件已成功发送';
} catch (Exception $e) {
echo "邮件发送失败:{$mail->ErrorInfo}";
}
?>
常见问题与注意事项
- 使用授权码而非密码:如QQ邮箱、163邮箱等需要开启SMTP服务,并使用生成的“授权码”作为密码。
- 端口与加密方式匹配:SSL通常用465端口,TLS用587端口,注意配置正确。
- 防止中文乱码:设置$mail->CharSet = 'UTF-8'。
- 避免被识别为垃圾邮件:设置合理的发件人名称、主题,避免频繁发送。
基本上就这些。PHPMailer让PHP发送邮件变得简单可靠,无论是文本邮件还是带样式和附件的HTML邮件都能轻松应对。合理封装后可作为项目中的通用邮件发送类重复使用。










