%PDF- %PDF-
Direktori : /var/www/projetos/suporte.iigd.com.br.old/src/ |
Current File : //var/www/projetos/suporte.iigd.com.br.old/src/GLPIMailer.php |
<?php /** * --------------------------------------------------------------------- * * GLPI - Gestionnaire Libre de Parc Informatique * * http://glpi-project.org * * @copyright 2015-2022 Teclib' and contributors. * @copyright 2003-2014 by the INDEPNET Development Team. * @licence https://www.gnu.org/licenses/gpl-3.0.html * * --------------------------------------------------------------------- * * LICENSE * * This file is part of GLPI. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. * * --------------------------------------------------------------------- */ use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; /** GLPIPhpMailer class * * @since 0.85 **/ class GLPIMailer extends PHPMailer { /** * Constructor * **/ public function __construct() { global $CFG_GLPI; $this->WordWrap = 80; $this->CharSet = "utf-8"; // Comes from config $this->SetLanguage("en", Config::getLibraryDir("PHPMailer") . "/language/"); if ($CFG_GLPI['smtp_mode'] != MAIL_MAIL) { $this->Mailer = "smtp"; $this->Host = $CFG_GLPI['smtp_host'] . ':' . $CFG_GLPI['smtp_port']; if ($CFG_GLPI['smtp_username'] != '') { $this->SMTPAuth = true; $this->Username = $CFG_GLPI['smtp_username']; $this->Password = (new GLPIKey())->decrypt($CFG_GLPI['smtp_passwd']); } if ($CFG_GLPI['smtp_mode'] == MAIL_SMTPSSL) { $this->SMTPSecure = "ssl"; } else if ($CFG_GLPI['smtp_mode'] == MAIL_SMTPTLS) { $this->SMTPSecure = "tls"; } else { // Don't automatically enable encryption if the GLPI config doesn't specify it $this->SMTPAutoTLS = false; } if (!$CFG_GLPI['smtp_check_certificate']) { $this->SMTPOptions = ['ssl' => ['verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ] ]; } if ($CFG_GLPI['smtp_sender'] != '') { $this->Sender = $CFG_GLPI['smtp_sender']; } } if ($_SESSION['glpi_use_mode'] == Session::DEBUG_MODE) { $this->SMTPDebug = SMTP::DEBUG_CONNECTION; $this->Debugoutput = function ($message, $level) { Toolbox::logInFile( 'mail-debug', "$level - $message" ); }; } } public static function validateAddress($address, $patternselect = "pcre8") { if (empty($address)) { return false; } $isValid = parent::validateAddress($address, $patternselect); if (!$isValid && str_ends_with($address, '@localhost')) { //since phpmailer6, @localhost address are no longer valid... $isValid = parent::ValidateAddress($address . '.me'); } return $isValid; } public function setLanguage($langcode = 'en', $lang_path = '') { if ($lang_path == '') { $local_path = dirname(Config::getLibraryDir('PHPMailer\PHPMailer\PHPMailer')) . '/language/'; if (is_dir($local_path)) { $lang_path = $local_path; } } return parent::setLanguage($langcode, $lang_path); } }