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

PHPMailer类找不到报错求助:Let’s Encrypt证书脚本故障

问题:PHPMailer Exception类未找到导致脚本发送邮件失败

运行用于生成Let’s Encrypt证书的脚本时出现报错:

550: Failed to spawn mail-process (ec:16) Error: Class "PHPMailer\PHPMailer\Exception" not found

脚本相关代码片段:

###sending it as email:
##########################################################
# sendCertificate
##########################################################
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
include('PHPMailer.php');

function sendCertificate($myemail) {
    global $argv;
    global $account_number;

    $email = new PHPMailer();
    $email->setFrom($myemail); //Name is optional
    $email->Subject   = 'ssl certificate files';
    $email->Body      = "
https://kis.hosteurope.de/administration/webhosting/admin.php?menu=6&mode=ssl_list&wp_id=$account_number
Zertifikat: fullchain.pem
Key: cert_private_key.pem
";

    $email->addAddress($myemail);
    
    $file_to_attach = __DIR__ . '/'.$argv[3];
    $email->addAttachment($file_to_attach , $argv[3]);
    $file_to_attach = __DIR__ . '/fullchain.pem';
    $email->addAttachment($file_to_attach , 'fullchain.pem');
    
    $sent = $email->send();
    if($sent) {
        echo "sending certificates by mail ... OK
";
    }
    else {
        echo "sending certificates by mail ... ERROR
";
        print_r( error_get_last() );
    }
}
sendCertificate($argv[1]);

?>

环境:GoDaddy虚拟主机,PHP 8.1版本,脚本数周未改动,已尝试更新PHPMailer.php至最新版本。


解决方案

1. 补充引入Exception类文件

报错核心原因是脚本仅引入了PHPMailer.php,但未加载Exception.php文件——最新版PHPMailer将Exception类单独拆分到独立文件中。修改代码中的引入部分:

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
// 同时引入Exception.php
include('PHPMailer.php');
include('Exception.php');

2. 验证文件路径正确性

确认PHPMailer.php和Exception.php与脚本文件处于同一目录,若PHPMailer文件存放在子目录(如./PHPMailer/),需调整引入路径:

include('./PHPMailer/PHPMailer.php');
include('./PHPMailer/Exception.php');

3. 检查文件权限

GoDaddy虚拟主机对文件权限有严格限制,确保PHPMailer.php和Exception.php的权限设置为644(所有者可读写,其他用户只读),避免服务器无法读取文件。

4. 确认PHPMailer版本兼容性

确保下载的PHPMailer版本支持PHP 8.1(推荐PHPMailer 6.8及以上版本),可通过查看PHPMailer的说明文件确认兼容性。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 19:38:16