当存在关键字“ use”时,Joomla模型错误500中的PHPMailer

问题描述 投票:0回答:1

我正在尝试从joomla模型使用phpmailer发送邮件,这是代码

require '/opt/cdf/ThemeComponent/models/vendor/autoload.php';
            require("/opt/cdf/ThemeComponent/models/PHPMailer-master/src/Exception.php");
            require("/opt/cdf/ThemeComponent/models/PHPMailer-master/src/PHPMailer.php");
            require("/opt/cdf/ThemeComponent/models/PHPMailer-master/src/SMTP.php");

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

            $email = new PHPMailer();
            $email->IsSMTP();
            $email->SMTPSecure = false;
            $email->SMTPAutoTLS = false;
            $email->Host = "stage1.dmz.gr";
            $email->Mailer = "smtp";
            $email->Port = 25;
            $email->CharSet = 'UTF-8';
            $email->Encoding = 'base64';
            $email->IsHTML(true);
            $email->SetFrom("[email protected]");
            $email->Subject = "ok";
            $email->Body = "<b>asdf</b>";
            $email->AddAddress("[email protected]");
            $email->Send();

此代码在joomla目录中运行良好,但是当我在joomla模型中使用它时,它抛出http错误号。 500,如果我推荐行use PHPMailer\PHPMailer\PHPMailer;,则错误消失了,但邮件未发送。

joomla model namespaces phpmailer http-status-code-500
1个回答
0
投票

use语句用于将命名空间类导入当前的命名空间,并且您可以read the docs on it。它是在PHP 5.3中引入的,因此此错误表明您正在运行PHP 5.2或更旧的版本,这是一个[[非常非常糟糕的主意,因为它尚未收到over 8 years的安全补丁。您的服务器容易受到许多已知攻击的攻击,因此您应<。

© www.soinside.com 2019 - 2024. All rights reserved.