add_hook(PluginHost::HOOK_SEND_MAIL, $this); } function hook_send_mail($mailer, $params) { if (Config::get(self::SMTP_SERVER)) { $phpmailer = new \PHPMailer\PHPMailer\PHPMailer(); $phpmailer->isSMTP(); $pair = explode(":", Config::get(self::SMTP_SERVER), 2); $phpmailer->Host = $pair[0]; $phpmailer->Port = (int)$pair[1]; $phpmailer->CharSet = "UTF-8"; if (!$phpmailer->Port) $phpmailer->Port = 25; if (Config::get(self::SMTP_LOGIN)) { $phpmailer->SMTPAuth = true; $phpmailer->Username = Config::get(self::SMTP_LOGIN); $phpmailer->Password = Config::get(self::SMTP_PASSWORD); } if (Config::get(self::SMTP_SECURE)) { $phpmailer->SMTPSecure = Config::get(self::SMTP_SECURE); } else { $phpmailer->SMTPAutoTLS = false; } if (Config::get(self::SMTP_SKIP_CERT_CHECKS)) { $phpmailer->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); } else if (Config::get(self::SMTP_CA_FILE)) { $phpmailer->SMTPOptions = array( 'ssl' => array( 'cafile' => Config::get(self::SMTP_CA_FILE) ) ); } $from_name = !empty($params["from_name"]) ? $params["from_name"] : Config::get(Config::SMTP_FROM_NAME); $from_address = !empty($params["from_address"]) ? $params["from_address"] : Config::get(Config::SMTP_FROM_ADDRESS); $phpmailer->setFrom($from_address, $from_name); $phpmailer->addAddress($params["to_address"], ($params["to_name"] ?? "")); $phpmailer->Subject = $params["subject"]; $phpmailer->CharSet = "UTF-8"; if (!empty($params["message_html"])) { $phpmailer->msgHTML($params["message_html"]); $phpmailer->AltBody = $params["message"]; } else { $phpmailer->Body = $params["message"]; } if (!empty($params['headers'])) foreach ($params['headers'] as $header) { $phpmailer->addCustomHeader($header); } $rc = $phpmailer->send(); if (!$rc) $mailer->set_error($rc . " " . $phpmailer->ErrorInfo); return $rc ? $rc : -1; } return 0; } function api_version() { return 2; } } ?>