PHPMailer 问题:require():需要打开失败

Problem with PHPMailer: require(): Failed opening required

我在设置 PHPMailer 时遇到问题。它以前工作,但现在突然停止了,这是我得到的错误: PHP Fatal error: require(): Failed opening required '../src/PHPMailer.php' (include_path='.:/opt/cpanel/ea-php53/root/usr/share/pear:/opt/cpanel/ea-php53/root/usr/share/php') in /home/pandatra/site.com/contacts_form/contact_form.php on line 9

这是contact_form.php中的代码:

<?php

    include 'config.php';

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

    require ''.$d['include_path'].'PHPMailer/src/Exception.php';
    require ''.$d['include_path'].'PHPMailer/src/PHPMailer.php';
    require ''.$d['include_path'].'PHPMailer/src/SMTP.php';
    
    $mail = new PHPMailer(true);

  if (isset($_POST['Send'])) {

如何解决这个问题?有任何想法吗?我下载了 PHPMailer 6.1.7 版本。

这是问题所在:

I just replaced the old version with the new one

如果您从 5.x 升级到 6.x,则需要阅读专门为解决此问题而创建的 the readme, the upgrade guide, or

您提到的错误是,您的require中的路径出错了。为避免此类问题,您应该始终使用 绝对路径

例如

    require __DIR__.'/PHPMailer/src/Exception.php';
    require __DIR__.'/PHPMailer/src/PHPMailer.php';
    require __DIR__.'/PHPMailer/src/SMTP.php';

   # use "use" after include or require

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

__DIR__是运行文件目录的绝对路径。