如何在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
相关产品推荐
相关产品推荐

