0

0

PHP代码如何发送电子邮件通知_PHP邮件发送与PHPMailer使用教程

絕刀狂花

絕刀狂花

发布时间:2025-10-30 13:18:01

|

353人浏览过

|

来源于php中文网

原创

推荐使用PHPMailer发送邮件,因其支持SMTP认证、HTML格式、附件及加密传输,比原生mail()函数更可靠。首先通过Composer安装并引入PHPMailer,配置SMTP信息(如QQ邮箱的Host、端口、授权码),设置发件人、收件人、主题与内容,启用HTML格式与异常处理,最后调用send()方法发送。注意使用授权码而非登录密码,避免垃圾邮件策略,并确保编码一致防止乱码。批量发送可结合addBCC或队列系统提升效率。

php代码如何发送电子邮件通知_php邮件发送与phpmailer使用教程

发送电子邮件是许多Web应用的基本功能,比如用户注册确认、密码重置、系统通知等。PHP本身提供了mail()函数来发送邮件,但在实际使用中存在配置复杂、容易被识别为垃圾邮件等问题。更推荐的方式是使用强大的第三方库——PHPMailer。本文将介绍如何使用原生mail()函数和PHPMailer发送邮件,并重点讲解PHPMailer的安装与使用方法。

使用PHP原生mail()函数发送邮件

PHP内置的mail()函数可以快速发送简单邮件,但依赖服务器正确配置SMTP服务(如sendmail)。

基本语法:

mail($to, $subject, $message, $headers);

示例代码:

$to = 'user@example.com';
$subject = '测试邮件';
$message = '这是一封来自PHP的测试邮件。';
$headers = 'From: webmaster@example.com' . "\r\n" .
        'Reply-To: webmaster@example.com' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

if (mail($to, $subject, $message, $headers)) {
    echo "邮件发送成功";
} else {
    echo "邮件发送失败";
}

注意:该方式在共享主机上可能受限,且不支持附件或HTML内容时较麻烦,安全性也较低。

为什么推荐使用PHPMailer

PHPMailer是一个功能丰富、易于使用的开源邮件发送库,支持:

立即学习PHP免费学习笔记(深入)”;

  • SMTP认证发送(更可靠)
  • 发送HTML格式邮件
  • 添加附件
  • 支持SSL/TLS加密
  • 更好的错误提示与调试能力

相比mail()函数,PHPMailer能有效避免邮件进入垃圾箱,适合生产环境。

安装与配置PHPMailer

推荐通过Composer安装PHPMailer,这是最标准的方式。

聚好用AI
聚好用AI

可免费AI绘图、AI音乐、AI视频创作,聚集全球顶级AI,一站式创意平台

下载
1. 使用Composer安装:

composer require phpmailer/phpmailer

2. 在项目中引入自动加载文件:

require 'vendor/autoload.php';

3. 使用PHPMailer发送SMTP邮件(以QQ邮箱为例):

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

$mail = new PHPMailer(true); // 启用异常处理

try {
    // 邮件服务器设置
    $mail->isSMTP();
    $mail->Host = 'smtp.qq.com';
    $mail->SMTPAuth = true;
    $mail->Username = 'your_email@qq.com';
    $mail->Password = 'your_auth_password'; // 注意:不是登录密码,是授权码
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
    $mail->Port = 465;

    // 收件人
    $mail->setFrom('your_email@qq.com', '发件人名称');
    $mail->addAddress('recipient@example.com', '收件人姓名');

    // 邮件内容
    $mail->isHTML(true);
    $mail->Subject = 'PHPMailer测试邮件';
    $mail->Body = '<h1>欢迎使用PHPMailer!</h1><p>这是一封HTML格式的邮件。</p>';
    $mail->AltBody = '这是纯文本版本内容';

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

重要提示:使用QQ邮箱等第三方服务时,请开启SMTP服务并获取“授权码”作为密码,不能使用账户登录密码。

常见问题与优化建议

在实际部署中,你可能会遇到以下情况:

  • 连接超时或认证失败:检查SMTP地址、端口、用户名和密码是否正确
  • 邮件被当作垃圾邮件:确保主题不过于营销化,避免大量链接或敏感词
  • 中文乱码:PHPMailer默认支持UTF-8,确保你的PHP文件和内容编码一致
  • 批量发送:可使用addAddress()多次添加收件人,或使用addBCC()进行密送

对于高并发场景,建议结合队列系统(如Redis、RabbitMQ)异步发送邮件,避免阻塞主流程。

基本上就这些。掌握PHPMailer后,你就能稳定地在项目中集成邮件通知功能了。比起原生mail()函数,它更安全、灵活,也更容易维护。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

162

2023.12.25

rabbitmq和kafka有什么区别
rabbitmq和kafka有什么区别

rabbitmq和kafka的区别:1、语言与平台;2、消息传递模型;3、可靠性;4、性能与吞吐量;5、集群与负载均衡;6、消费模型;7、用途与场景;8、社区与生态系统;9、监控与管理;10、其他特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

207

2024.02.23

Java 消息队列与异步架构实战
Java 消息队列与异步架构实战

本专题系统讲解 Java 在消息队列与异步系统架构中的核心应用,涵盖消息队列基本原理、Kafka 与 RabbitMQ 的使用场景对比、生产者与消费者模型、消息可靠性与顺序性保障、重复消费与幂等处理,以及在高并发系统中的异步解耦设计。通过实战案例,帮助学习者掌握 使用 Java 构建高吞吐、高可靠异步消息系统的完整思路。

49

2026.01.28

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

847

2023.08.22

require的用法
require的用法

require的用法有引入模块、导入类或方法、执行特定任务。想了解更多require的相关内容,可以阅读本专题下面的文章。

510

2023.11.27

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1007

2023.11.02

内存数据库有哪些
内存数据库有哪些

内存数据库有Redis、Memcached、Apache Ignite、VoltDB、TimesTen、H2 Database、Aerospike、Oracle TimesTen In-Memory Database、SAP HANA和ache Cassandra。更多关于内存数据库相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

673

2023.11.14

mongodb和redis哪个读取速度快
mongodb和redis哪个读取速度快

redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用哈希表快速查找数据,而 mongodb 使用 b-tree 索引。因此,redis 在需要高性能读取操作的应用程序中是一个更好的选择。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

501

2024.04.02

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 13.5万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号