Mailwizz, глобальное исключение доменов получателей
Задача: заблокировать отправку на определённые доменные зоны получателей.
Решение:
1 — в файле apps/init-custom.php добавьте следующий код:
<?php Yii::app()->hooks->addFilter('email_blacklist_is_email_blacklisted', function($isBlacklisted, $email, $subscriber = null, $customer = null, array $params = []){ // if already blacklisted we stop if ($isBlacklisted !== false) { return $isBlacklisted; } // Load the file with domains in memory, just once per request. // If your file size is 10mb, you will need 10mb ram to hold this file // This is not effective at all, but if the file is small, it will work just fine static $domains; if ($domains === null) { $domains = []; if (is_file(__DIR__ . '/blacklist-domains.txt')) { $domains = array_map('strtolower', explode(PHP_EOL, (string)file_get_contents(__DIR__ . '/blacklist-domains.txt'))); } } // get the domain from the email address list(, $domain) = explode('@', $email); // search the domain inside the domains file if (array_search(strtolower($domain), $domains) !== false) { $isBlacklisted = 'This email address is blacklisted because the domain it belongs to is blacklisted!'; } return $isBlacklisted; });
2 — добавьте в папку /apps/ файл с именем «blacklist-domains.txt», который содержит все домены, по одному в каждой строке.