Как запретить отправку писем с определённых email доменов?

Для запрета отправки писем с определенных email доменов в WordPress можно использовать дополнительные плагины или написать свою функцию.

Если вы предпочитаете использовать плагины, одним из самых популярных вариантов является "Stop Emails". После установки и активации плагина вы сможете настроить список запрещенных email доменов. Все письма, отправленные с этих доменов, будут блокироваться и не достигнут адресата.

Если вы предпочитаете написать свою функцию, вам понадобится добавить следующий код в файл functions.php вашей темы или в файл плагина:

function block_specific_email_domains( $atts ) {
    // Список запрещенных email доменов
    $blocked_domains = array( 'example.com', 'example.org' );
    
    // Получаем email адрес отправителя
    $headers = $atts['headers'];
    $from = '';

    if( preg_match('/^From: (.*)/m', $headers, $matches) ) {
        $from = trim( $matches[1] );
    }
    
    // Получаем домен отправителя
    $domain = strtolower( substr( strrchr( $from, '@' ), 1 ) );
    
    // Проверяем, является ли домен запрещенным
    if( in_array( $domain, $blocked_domains ) ) {
        // Если домен запрещен, выводим сообщение об ошибке
        wp_die( 'Отправка писем с этого домена запрещена.' );
    }
}
add_action( 'phpmailer_init', 'block_specific_email_domains' );

Эта функция будет выполняться после инициализации объекта PHPMailer, который WordPress использует для отправки писем. Она получает заголовки письма и извлекает адрес отправителя. Затем сравнивает домен отправителя с доменами из списка запрещенных. Если найдено совпадение, функция выводит сообщение об ошибке, прерывая отправку письма.

Не забудьте сохранить изменения в файле functions.php или плагине и протестировать результаты, отправив письмо с запрещенного email домена.