Как удалить или отключить отправку писем WordPress без плагинов

В WordPress по умолчанию система отправляет множество системных писем — уведомления о новых пользователях, смене пароля, комментариях, обновлениях и других событиях. Иногда возникает необходимость полностью отключить эти письма или контролировать их отправку без использования сторонних плагинов, чтобы снизить нагрузку на сервер или избежать спама.

Почему важно контролировать отправку email в WordPress

Многие владельцы сайтов сталкиваются с проблемой избыточных уведомлений или нежелательных писем от WordPress. Это может негативно влиять на репутацию почтового сервера, вызывать блокировки или просто раздражать администраторов и пользователей.

Кроме того, некоторые хостинги ограничивают количество отправляемых писем, и при активном сайте с большим количеством уведомлений можно быстро достигнуть лимитов.

В таких случаях целесообразно научиться управлять или полностью отключать системные email-сообщения без установки лишних плагинов, которые сами по себе могут потреблять ресурсы.

Основные системные email WordPress и способы их отключения

WordPress использует функцию wp_mail() для отправки писем. Большинство уведомлений генерируются автоматически ядром или некоторыми функциями, которые можно переопределить.

Рассмотрим основные типы писем:

  • Уведомления о регистрации нового пользователя
  • Сброс пароля
  • Уведомления о комментариях
  • Уведомления об обновлениях

Отключение уведомлений о регистрации нового пользователя

По умолчанию WordPress отправляет письма администраторам и новым пользователям при регистрации. Чтобы отключить эти письма, можно использовать фильтры:

add_filter('wpsocial_wp_new_user_notification_email_admin', '__return_false');
add_filter('wpsocial_wp_new_user_notification_email', '__return_false');

Однако в старых версиях WordPress такие фильтры не предусмотрены. Тогда можно полностью переопределить функцию wp_new_user_notification с помощью своего варианта:

if (!function_exists('wp_new_user_notification')) {
    function wp_new_user_notification($user_id, $notify = '') {
        // Пустая функция для отключения уведомлений
        return;
    }
}

В новых версиях рекомендуется использовать хук wp_new_user_notification_email для фильтрации писем.

Отключение писем при сбросе пароля

Когда пользователь запрашивает сброс пароля, WordPress отправляет email с инструкциями. Чтобы отключить этот email, можно использовать фильтр send_password_change_email:

add_filter('send_password_change_email', '__return_false');

Это полностью отключит уведомление о смене пароля. Если же нужно более тонко настроить, можно использовать фильтр retrieve_password_message для изменения текста или отмены отправки.

Отключение уведомлений о новых комментариях

В WordPress администраторы и авторы постов получают уведомления о новых комментариях. Их можно отключить через админку, но если нужна программная настройка, используются фильтры:

add_filter('notify_post_author', '__return_false');
add_filter('notify_moderator', '__return_false');

Эти фильтры отключают уведомления соответственно автору поста и модератору.

Отключение уведомлений об обновлениях

WordPress может отправлять письма о доступных обновлениях плагинов, тем и самого ядра. Для их отключения используйте фильтр auto_core_update_send_email:

add_filter('auto_core_update_send_email', function($send, $type, $core_update, $result) {
    // Отключаем все уведомления об обновлениях
    return false;
}, 10, 4);

Это отключит все системные уведомления об обновлениях.

Глобальное отключение всех исходящих писем WordPress с помощью перехвата wp_mail

Если нужна радикальная мера — полностью отключить отправку любых email с сайта, можно переопределить функцию wp_mail с помощью фильтра wp_mail или заменить её на пустую функцию.

Пример перехвата и блокировки всех писем:

add_filter('wp_mail', 'wpsocial_disable_all_emails');
function wpsocial_disable_all_emails($args) {
    // Возвращаем false, чтобы письма не отправлялись
    return false;
}

Однако это может привести к непредвиденным последствиям, так как многие плагины ожидают отправки писем.

Более корректный способ — переопределить функцию wp_mail в functions.php темы:

if (!function_exists('wp_mail')) {
    function wp_mail($to, $subject, $message, $headers = '', $attachments = array()) {
        // Просто возвращаем true, чтобы имитировать успешную отправку
        return true;
    }
}

Пример: отключаем уведомления о новых пользователях и комментариях, но оставляем письма сброса пароля

Часто требуется отключить часть писем, а не все. Например, убрать уведомления о регистрации и комментариях:

add_filter('wp_new_user_notification_email_admin', '__return_false');
add_filter('wp_new_user_notification_email', '__return_false');
add_filter('notify_post_author', '__return_false');
add_filter('notify_moderator', '__return_false');

В этом случае пользователи смогут сбрасывать пароли и получать соответствующие письма. Такой подход сохраняет важные уведомления и уменьшает спам с сайта.

Рекомендации по тестированию и отладке отключения email в WordPress

После внесения изменений важно проверить, что нужные письма действительно не отправляются. Для этого можно использовать тестовые аккаунты и запросить сброс пароля или оставить комментарий.

Если письма всё равно приходят, проверьте, не активированы ли плагины, которые могут отправлять уведомления напрямую через свои функции.

Для временного мониторинга отправки почты можно использовать плагин «WP Mail Logging», который сохраняет логи писем, чтобы убедиться в корректности работы фильтров.

Заключение

Управление отправкой email в WordPress без плагинов — задача, которая требует понимания работы фильтров и функций ядра. Используя приведённые фильтры и примеры кода, вы сможете гибко настраивать, какие письма сайт отправляет, а какие — нет, что поможет улучшить производительность и избежать проблем с почтовыми серверами.

Автопостинг из Twitter в WordPress с фильтрацией и обработкой контента
13.04.2026
WooCommerce: автоматическое удаление неактивных заказов по срокам
27.06.2026
WooCommerce: как настроить автоматическую отправку сообщений покупателям после заказа
28.04.2026
WP Social Login не работает: причины и решения
07.12.2025
Как удалить ссылки на социальные сети из выводов WordPress
10.02.2026