From 41d03fa15850dbadd4d499cc440a2dd2fee23a72 Mon Sep 17 00:00:00 2001 From: Michael Krieger Date: Thu, 5 Mar 2020 18:02:43 -0500 Subject: [PATCH] Update functions.inc.php --- functions.inc.php | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/functions.inc.php b/functions.inc.php index 70c6c49e..b2157ca1 100644 --- a/functions.inc.php +++ b/functions.inc.php @@ -260,6 +260,33 @@ function check_domain($domain) { return ''; } +/** + * Checks if a domain is local + * @param string $domain + * @return string empty if the domain is valid, otherwise string with the errormessage + */ +function check_localaliasonly($domain) { + // If emailcheck_localonly_domain is set to 'YES', disallow aliases to remote servers (but allow aliases on this server) + if (Config::bool('emailcheck_localaliasonly')) { + // get the domain part of the e-mail + list(/*NULL*/, $domain) = explode('@', $domain); + + // get all domains managed on this system by postfixadmin + $domains = list_domains(); + + // Only allow local domains to be alias destinations + if (in_array($domain, $domains)) { + return ''; + } else { + // FIXME: Add transaltions + return sprintf("You may only make aliases to domains hosted on this server. %s is a remote domain name.", htmlentities($domain)); + } + } else { + return ''; + } + +} + /** * Get password expiration value for a domain * @param string $domain - a string that may be a domain