批量发送3万封邮件时PHPMailer类未找到报错的解决方案咨询
PHPMailer类未找到报错解决方案
Fatal error: Uncaught Error: Class 'PHPMailer' not found in /home/u903426621/domains/skills4all.net/public_html/manish/testmail.php:21 Stack trace: #0 {main} thrown in /home/u903426621/domains/skills4all.net/public_html/manish/testmail.php on line 21
该报错核心原因是代码调用PHPMailer类前,没有正确安装、引入对应依赖,以下是完整解决步骤:
- 步骤1:安装PHPMailer依赖
有两种安装方式可选:- Composer安装(推荐):在项目根目录执行命令
composer require phpmailer/phpmailer,安装完成后在testmail.php代码顶部添加以下内容:
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; // 注意调整autoload.php的路径为你项目vendor目录的实际路径 require 'vendor/autoload.php';- 手动安装:下载PHPMailer源码包解压后,放到testmail.php同级的
phpmailer目录下,在代码顶部添加以下内容:
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'phpmailer/src/Exception.php'; require 'phpmailer/src/PHPMailer.php'; require 'phpmailer/src/SMTP.php'; - Composer安装(推荐):在项目根目录执行命令
- 步骤2:修正类调用写法
6.x及以上版本的PHPMailer必须搭配命名空间使用,实例化类的写法为$mail = new PHPMailer(true);,不要省略命名空间前缀或者使用老版本的无命名空间写法。 - 步骤3:验证引入路径正确性
可以用绝对路径替换相对路径避免路径错误,你当前站点的根目录绝对路径为/home/u903426621/domains/skills4all.net/public_html/manish/,可以直接用该前缀拼接文件路径。
批量发送3万封邮件额外注意事项
- 不要一次性串行循环发送所有邮件,建议分批发送,每发送10-20封添加1秒左右延迟,避免触发SMTP服务的频率限制
- 不要使用普通个人邮箱作为发件方,建议搭配专业邮件推送服务使用,降低邮件进入垃圾箱的概率,同时避免个人邮箱账号被封禁
- 可添加失败重试逻辑,记录发送失败的邮箱地址,后续统一补发
内容的提问来源于stack exchange,提问作者etrables
相关产品推荐
相关产品推荐

