You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WAMP本地环境安装配置PHPMailer?求助

嘿,别担心,这是新手用新版PHPMailer时很容易踩的小坑——因为你通过Composer安装的是新版PHPMailer,它早就废弃了PHPMailerAutoload.php这个文件啦!下面我给你一步步梳理清楚怎么正确配置和使用它:

第一步:先搞懂Composer的自动加载逻辑

你已经通过composer require phpmailer/phpmailer成功装好PHPMailer了,现在完全不需要手动找什么PHPMailerAutoload.php。Composer会生成一个统一的自动加载入口文件vendor/autoload.php,所有通过Composer安装的依赖(包括PHPMailer)都靠它来自动加载类文件,这也是现在PHP开发的标准做法。

第二步:写正确的测试代码

把你的测试文件(比如checkPHPMAILER.php)放在vendor所在的网站根目录(也就是C:\wamp64\www\MySite\下面),然后把代码改成这样:

<?php
// 引入Composer生成的自动加载文件
require 'vendor/autoload.php';

// 新版PHPMailer用了命名空间,必须用use语句引入对应类
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

// 实例化PHPMailer,true表示启用异常处理,方便排查错误
$mail = new PHPMailer(true); 
echo "PHPMailer实例化成功!";
?>

运行这个文件,如果能正常输出提示,就说明PHPMailer已经可以正常使用了。

第三步:完整的邮件发送配置示例

测试通过后,给你一个可直接运行的邮件发送示例(以QQ邮箱SMTP服务为例,其他邮箱逻辑类似):

<?php
require 'vendor/autoload.php';

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

try {
    // 初始化PHPMailer对象
    $mail = new PHPMailer(true);

    // -------------------------- SMTP服务器配置 --------------------------
    $mail->isSMTP();                                            // 启用SMTP协议发送邮件
    $mail->Host       = 'smtp.qq.com';                          // QQ邮箱的SMTP服务器地址
    $mail->SMTPAuth   = true;                                   // 开启SMTP身份验证
    $mail->Username   = '你的QQ邮箱@qq.com';                     // 你的邮箱账号
    $mail->Password   = '你的邮箱SMTP授权码';                   // 注意:不是QQ登录密码,是邮箱设置里生成的SMTP授权码
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            // 加密方式,QQ邮箱用SMTPS
    $mail->Port       = 465;                                    // SMTP端口,SMTPS对应465

    // -------------------------- 收发件人配置 --------------------------
    $mail->setFrom('你的QQ邮箱@qq.com', '你的昵称');            // 发件人邮箱和显示昵称
    $mail->addAddress('收件人邮箱@xxx.com', '收件人昵称');       // 收件人邮箱和昵称
    // $mail->addAddress('另一个收件人@xxx.com');                // 可以添加多个收件人
    // $mail->addCC('抄送邮箱@xxx.com');                          // 抄送功能

    // -------------------------- 邮件内容配置 --------------------------
    $mail->isHTML(true);                                        // 允许邮件内容使用HTML格式
    $mail->Subject = PHPMailer::CHARSET . 'PHPMailer测试邮件';  // 邮件主题,指定编码避免乱码
    $mail->Body    = '<h1>测试邮件</h1><p>你好,这是通过PHPMailer发送的测试邮件!</p>'; // HTML格式的邮件内容
    $mail->AltBody = '你好,这是通过PHPMailer发送的测试邮件!'; // 纯文本内容(当收件人不支持HTML时显示)

    $mail->send();
    echo '邮件发送成功!';
} catch (Exception $e) {
    echo "邮件发送失败:{$mail->ErrorInfo}";
}
?>
几个关键注意事项
  • SMTP授权码怎么弄:比如QQ邮箱,登录网页版后进入「设置」-「账户」,找到「POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务」,开启「SMTP服务」,然后按照提示生成授权码,这个码就是代码里的Password值,千万不要填你的邮箱登录密码。
  • 开启PHP的openssl扩展:WAMP环境下,右键点击任务栏的WAMP图标,依次选择「PHP」-「PHP扩展」,找到php_openssl并勾选,然后重启WAMP服务——因为SMTP加密传输需要这个扩展支持。
  • 别乱动vendor文件夹:vendor是Composer自动生成的,不要随便移动、删除或修改里面的文件,否则会导致自动加载失效。
补充:为什么找不到PHPMailerAutoload.php?

从PHPMailer 6.0版本开始,官方就彻底移除了PHPMailerAutoload.php这个文件,转而推荐使用Composer的自动加载机制,这也是现在PHP开发的主流规范。你用Composer安装的是最新版PHPMailer,自然找不到这个旧文件啦。

内容的提问来源于stack exchange,提问作者todor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:09:16