如何用 php 实现邮件发送功能

一、使用 PHPMailer 发送邮件

1、需要先安装 PHPMailer 库。你可以使用 Composer 来安装它:
php 复制代码
composer require phpmailer/phpmailer
2、安装完成后,可以创建一个简单的 PHP 脚本来发送邮件。以下是一个示例脚本:
php 复制代码
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

// 实例化PHPMailer对象
$mail = new PHPMailer(true);

try {
    $code = rand(1000, 9999);
    // 服务器设置
    $mail->SMTPDebug = 2;                                       // 启用详细调试输出
    $mail->isSMTP();                                            // 使用SMTP发送
    $mail->Host       = 'smtp.qq.com';                          // 设置SMTP服务器地址
    $mail->SMTPAuth   = true;                                   // 启用SMTP认证
    $mail->Username   = '1356359464@qq.com';                    // QQ邮箱地址
    $mail->Password   = 'vlswghczbpojjddg';                     // QQ邮箱SMTP授权码
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         // 启用TLS加密
    $mail->Port       = 587;                                    // SMTP端口

    // 收件人设置
    $mail->setFrom('你的QQ号@qq.com', 'Mailer');              // 设置发送人
    $mail->addAddress('你的QQ号@qq.com', 'Recipient');        // 添加一个收件人

    // 附件
    // $mail->addAttachment('/var/tmp/file.tar.gz');            // 添加附件
    // $mail->addAttachment('/tmp/image.jpg', 'new.jpg');       // 可选名称

    // 内容
    $mail->isHTML(true);                                        // 设置邮件内容为HTML
    $mail->Subject = '验证码';                                   // 这里是邮件标题
    $mail->Body    = "您的验证码是: {$code}";
    $mail->send();
    echo '邮件已发送成功';
} catch (Exception $e) {
    echo "邮件发送失败: {$mail->ErrorInfo}";
}
3、将上面的示例脚本保存为一个 PHP 文件(test.php),并根据需要修改以下几处:
  1. smtp.example.com 改为你使用的 SMTP 服务器地址。
  2. your-email@example.com 和 your-email-password 改为你的 SMTP 认证用户名和密码。
  3. from@example.com 和 Mailer 改为发送人的邮箱和名称。
  4. recipient@example.com 和 Recipient 改为收件人的邮箱和名称。
  5. 587 改为你的 SMTP 服务器使用的端口。
4、在你的服务器上运行该脚本,邮件就会被发送出去。
php 复制代码
php test.php
相关推荐
H5css�海秀3 小时前
今天是自学大模型的第一天(sanjose)
后端·python·node.js·php
SuniaWang3 小时前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题六:《Vue3 前端开发实战:打造企业级 RAG 问答界面》
java·前端·人工智能·spring boot·后端·spring·架构
韩立学长3 小时前
Springboot校园跑腿业务系统0b7amk02(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
sheji34163 小时前
【开题答辩全过程】以 基于springboot的扶贫系统为例,包含答辩的问题和答案
java·spring boot·后端
xingxin325 小时前
日志文件分析溯源(连接WebShell的IP地址)实验报告
安全·web安全·网络安全·php·文件上传
代码栈上的思考5 小时前
消息队列:内存与磁盘数据中心设计与实现
后端·spring
LegendNoTitle5 小时前
计算机三级等级考试 网络技术 选择题考点详细梳理
服务器·前端·经验分享·笔记·php
程序员小假5 小时前
我们来说一下 b+ 树与 b 树的区别
java·后端
Meepo_haha6 小时前
Spring Boot 条件注解:@ConditionalOnProperty 完全解析
java·spring boot·后端
sheji34166 小时前
【开题答辩全过程】以 基于springboot的房屋租赁系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端