PHPMailer в Joomla Model Error 500, когда есть ключевое слово «use» - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь отправить почту, используя phpmailer из модели joomla, вот код

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("noreply@mydomain.com");
            $email->Subject = "ok";
            $email->Body = "<b>asdf</b>";
            $email->AddAddress("wasimxe@gmail.com");
            $email->Send();

Этот код работает нормально из каталога joomla, но когда я использую его в модели joomla, он выдает ошибку http no,500, и если я рекомендую строку use PHPMailer\PHPMailer\PHPMailer;, то ошибка исчезла, но почта не отправлена.

1 Ответ

0 голосов
/ 27 сентября 2019

Оператор use предназначен для импорта классов пространства имен в ваше текущее пространство имен, и вы можете прочитать документы по нему .Он был введен в PHP 5.3, поэтому эта ошибка указывает на то, что вы используете PHP 5.2 или более раннюю версию, что является очень, очень плохой идеей , поскольку он не получал исправлений безопасности для в течение 8 лет ,Ваш сервер уязвим для многих известных атак, поэтому вы должны немедленно обновить .

...