Improve email from address list matching

This commit is contained in:
Skylar Ittner 2025-12-14 16:52:54 -07:00
parent 4746a602e0
commit bfbedf9b23

View File

@ -26,6 +26,9 @@ $email_lower = trim(strtolower($fromemail));
$email_parts = explode("@", $email_lower); $email_parts = explode("@", $email_lower);
$email_domain = $email_parts[count($email_parts) - 1]; $email_domain = $email_parts[count($email_parts) - 1];
$bannedspamdomains = file(BANNED_SPAM_DOMAINS, FILE_IGNORE_NEW_LINES);
$bannedpartialdomains = file(BANNED_SPAM_DOMAINS_PARTIAL, FILE_IGNORE_NEW_LINES);
// //
// If message too short (chars and/or words) // If message too short (chars and/or words)
// //
@ -43,7 +46,7 @@ if (isset($VARS["message"])) {
// //
$banneddomainlist1 = file(BANNED_EMAIL_DOMAINS, FILE_IGNORE_NEW_LINES); $banneddomainlist1 = file(BANNED_EMAIL_DOMAINS, FILE_IGNORE_NEW_LINES);
$banneddomainlist2 = file(BANNED_REFERRALSPAM_DOMAINS, FILE_IGNORE_NEW_LINES); $banneddomainlist2 = file(BANNED_REFERRALSPAM_DOMAINS, FILE_IGNORE_NEW_LINES);
$banneddomainlist = array_merge($banneddomainlist1, $banneddomainlist2); $banneddomainlist = array_merge($banneddomainlist1, $banneddomainlist2, $bannedspamdomains);
foreach ($banneddomainlist as $domain) { foreach ($banneddomainlist as $domain) {
if ($email_domain == $domain || str_ends_with($email_domain, ".$domain")) { if ($email_domain == $domain || str_ends_with($email_domain, ".$domain")) {
exitWithJson(["status" => "OK", "clean" => false, "filter" => "domain", "hit" => $domain, "message" => "Emails from \"" . htmlspecialchars($domain) . "\" are not allowed because of spam/abuse." . ($domain == "googlemail.com" ? " (Hint: use gmail.com instead)" : "")]); exitWithJson(["status" => "OK", "clean" => false, "filter" => "domain", "hit" => $domain, "message" => "Emails from \"" . htmlspecialchars($domain) . "\" are not allowed because of spam/abuse." . ($domain == "googlemail.com" ? " (Hint: use gmail.com instead)" : "")]);
@ -147,8 +150,7 @@ $lists = [
"dbl.spamhaus.org", "dbl.spamhaus.org",
"black.uribl.com" "black.uribl.com"
]; ];
$bannedspamdomains = file(BANNED_SPAM_DOMAINS, FILE_IGNORE_NEW_LINES);
$bannedpartialdomains = file(BANNED_SPAM_DOMAINS_PARTIAL, FILE_IGNORE_NEW_LINES);
try { try {
// Matches domain names // Matches domain names
$regex = "/([a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+)/i"; $regex = "/([a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+)/i";