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

PHPMailer报错:Uncaught Error: Class PHPMailer未找到求助

解决PHPMailer "Class PHPMailer not found" 报错

可能的问题及修复方案

1. 命名空间与实例化方式不匹配

你直接include文件后,PHPMailer类处于PHPMailer\PHPMailer命名空间下,若未使用use语句,实例化时必须使用完全限定类名,示例:

// include文件后,采用完全限定类名实例化
$mail = new PHPMailer\PHPMailer\PHPMailer();
$exception = new PHPMailer\PHPMailer\Exception();

如果想用use语句简化类名,需确保use语句在include文件之后,或者配置自动加载让PHP能关联命名空间与对应文件。

2. 未正确启用自动加载(推荐方案)

如果你是通过系统包管理器(如apt安装的libphp-phpmailer),需确保PHP能自动识别PHPMailer的命名空间。可在代码开头添加以下内容:

// 手动引入PHPMailer核心文件
require '/usr/share/php/libphp-phpmailer/src/PHPMailer.php';
require '/usr/share/php/libphp-phpmailer/src/Exception.php';
require '/usr/share/php/libphp-phpmailer/src/SMTP.php'; // 若使用SMTP发送需引入

之后结合use语句,即可直接用简化类名实例化:

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

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

3. 验证文件路径与权限

确认你include的路径/usr/share/php/libphp-phpmailer/src/下确实存在PHPMailer.php和Exception.php,且PHP运行进程(通常为www-data用户)拥有文件读取权限。可通过以下命令检查:

ls -l /usr/share/php/libphp-phpmailer/src/

若文件不存在,说明安装路径有误,需重新确认PHPMailer的实际安装位置。

4. 避免混用加载逻辑

不要同时混用use语句和手动include却不匹配命名空间规则,建议统一加载方式:要么用自动加载+use简化类名,要么用完全限定类名+手动include。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:27:24