diff --git a/php/src/mail/mailer.php b/php/src/mail/mailer.php index d11eb34..ac2e9ad 100644 --- a/php/src/mail/mailer.php +++ b/php/src/mail/mailer.php @@ -6,38 +6,26 @@ use nulib\cl; use nulib\cv; use nulib\exceptions; use nulib\output\msg; +use nulib\php\types\vbool; use nulib\str; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; class mailer { private static function is_bool(&$value): bool { - if ($value === null) { - return false; - } elseif (is_bool($value)) { + if ($value === null) return false; + elseif (is_bool($value)) return true; + elseif (is_numeric($value)) { + $value = $value != 0; return true; - } elseif (is_int($value)) { - $value = boolval($value); + } elseif (vbool::is_yes($value)) { + $value = true; + return true; + } elseif ($value === "" || vbool::is_no($value)) { + $value = false; return true; - } else { - switch (strval($value)) { - case "": - case "0": - case "no": - case "off": - case "false": - $value = false; - return true; - case "1": - case "yes": - case "on": - case "true": - $value = true; - return true; - default: - return false; - } } + return false; } private static function get_bool($value): bool { @@ -120,19 +108,14 @@ class mailer { $mailer->SMTPDebug = $debug; # auth, username, password $username = $params["username"] ?? null; - $username ??= cv::vn(getenv("NULIB_MAIL_USERNAME")); $password = $params["password"] ?? null; - $password ??= cv::vn(getenv("NULIB_MAIL_PASSWORD")); $auth = $params["auth"] ?? null; - $auth ??= cv::vn(getenv("NULIB_MAIL_AUTH")); $auth ??= $username !== null && $password !== null; $mailer->SMTPAuth = self::get_bool($auth); $mailer->Username = $username; $mailer->Password = $password; # secure - $secure = $params["secure"] ?? null; - $secure ??= cv::vn(getenv("NULIB_MAIL_SECURE")); - $secure ??= false; + $secure = $params["secure"] ?? false; if (self::is_bool($secure)) { if (!$secure) { $mailer->SMTPSecure = "";