Описание
SwiftTrap — это готовая замена wp_mail(), которая направляет письма WordPress через Mailtrap Email Sending API вместо SMTP. Плагин создан специально для Mailtrap — это не универсальный SMTP-плагин с пресетом для Mailtrap, — поэтому он открывает доступ к нативным возможностям Mailtrap, недоступным через SMTP: маршрутизация по массовому и транзакционному потокам, категории писем, пользовательские переменные для отслеживания, списки блокировок и статус верификации домена.
Почему HTTP API, а не SMTP?
- Меньшая задержка — один HTTPS-запрос на письмо, без циклов MAIL FROM / RCPT TO / DATA.
- Лучшая доставляемость — Mailtrap направляет API-сообщения через выделенные транзакционный и массовый потоки; SMTP не даёт выбрать поток.
- Нативные категории — каждое письмо автоматически категоризируется (welcome, password-reset, notification, marketing и т. д.), что позволяет фильтровать их и строить отчёты в Mailtrap.
- Никаких проблем с файрволом — порт 587/465 заблокирован? API работает через стандартный HTTPS 443.
Почему SwiftTrap, а не WP Mail SMTP / Post SMTP
- Универсальные SMTP-плагины используют SMTP-учётные данные Mailtrap и теряют все функции, доступные только через Mailtrap.
- SwiftTrap обращается к
send.api.mailtrap.ioдля транзакционной почты и кbulk.api.mailtrap.ioдля массовой — автоматически, на основе категории или через фильтр. - Mailtrap PHP SDK не требуется. Плагин занимает всего ~30 КБ и использует только WordPress HTTP API (
wp_remote_post). - Страница статистики показывает статус верификации вашего домена отправки и актуальный список блокировок (возвраты, жалобы, отписки).
Возможности
- Готовая замена
wp_mail()— работает с WooCommerce, Contact Form 7, Gravity Forms и любым плагином, использующим почту WordPress. - Автоматическая категоризация писем и переопределение маршрутизации потоков через таблицу настроек.
- Отслеживание доставки & вебхуки — отслеживание событий в реальном времени через собственный REST-маршрут
swifttrap/v1/webhook. - Управление блокировками — панель CRUD для списков блокировок Mailtrap с проверкой получателей на блокировку перед отправкой.
- Отказоустойчивость — плавный откат к нативному
wp_mail()WordPress, если вызов API Mailtrap завершился ошибкой. - Интеграция с Site Health — тест проверки статуса токена Mailtrap и верификации домена отправки.
- Живой журнал писем — просмотр и фильтрация данных о доставке, полученных напрямую из API Mailtrap; поиск по адресу получателя, статусу или диапазону дат с автоматической пагинацией.
- Команды WP-CLI — управление из командной строки через
wp swifttrap(test, stats, prune-logs, send-suppression-sync). - Контроль размера вложений — настраиваемые лимиты, предотвращающие отклонение слишком больших файлов на шлюзе API.
- Кнопка отправки тестового письма на странице настроек.
- Поддержка шаблонов Mailtrap через
template_uuid. - Откат к стандартному обработчику почты WordPress, если плагин отключён или токен пуст.
Расширяется через фильтры
swifttrap_mailtrap_email_category— переопределяет автоматически определённую категорию письма.swifttrap_mailtrap_use_bulk_stream— принудительно направляет сообщение в массовый или транзакционный поток.swifttrap_mailtrap_template— отправляет письмо через шаблон Mailtrap поtemplate_uuid.swifttrap_mailtrap_custom_variables— прикрепляет метаданные для отслеживания к исходящим письмам.
Конфиденциальность
Этот плагин отправляет данные писем (получатели, тема, тело, вложения) в API Mailtrap по адресам send.api.mailtrap.io и bulk.api.mailtrap.io. Статистика аккаунта и журналы писем получаются из mailtrap.io/api/accounts и mailtrap.io/api/email_logs. См. Политику конфиденциальности Mailtrap. Никакие данные никуда больше не отправляются.
Скриншоты





Установка
- Установите из раздела Плагины Добавить новый, найдя SwiftTrap for Mailtrap, или загрузите папку
swifttrap-for-mailtrapв/wp-content/plugins/. - Активируйте плагин.
- Перейдите в Mailtrap Настройки.
- Вставьте ваш Mailtrap Send API token (панель Mailtrap Sending Domains API Tokens).
- Укажите подтверждённые email и имя отправителя.
- Нажмите Отправить тестовое письмо, чтобы проверить доставку.
Часто задаваемые вопросы
-
Почему стоит использовать SwiftTrap вместо WP Mail SMTP или Post SMTP с учётными данными Mailtrap?
-
WP Mail SMTP и Post SMTP работают через SMTP-шлюз Mailtrap и рассматривают Mailtrap как обычный SMTP-хост. SwiftTrap использует HTTP Send API Mailtrap, который открывает функции, недоступные через SMTP: маршрутизацию по массовому и транзакционному потокам, категории, пользовательские переменные отслеживания, UUID шаблонов и живую видимость списка блокировок. Используйте SwiftTrap, если хотите нативное поведение Mailtrap; используйте универсальный SMTP-плагин, если нужна единая настройка, подходящая для любых провайдеров.
-
Поддерживает ли плагин шаблоны писем Mailtrap?
-
Да — используйте фильтр
swifttrap_mailtrap_template, чтобы отправлять письма черезtemplate_uuid. Переменные шаблона можно передавать через стандартный набор template-variables Mailtrap. -
Как работает маршрутизация в массовый поток?
-
По умолчанию категории marketing/promotional направляются в
bulk.api.mailtrap.io, а всё остальное — вsend.api.mailtrap.io. Переопределяйте для отдельного письма через фильтрswifttrap_mailtrap_use_bulk_stream— это полезно для пакетных рассылок из собственного плагина. -
Где получить API-токен?
-
Войдите на mailtrap.io, откройте ваш домен отправки, перейдите в API Tokens и создайте токен с правами на отправку.
-
Что произойдёт, если я отключу плагин или удалю токен?
-
WordPress вернётся к своему стандартному обработчику
wp_mail(). Ни одно письмо не будет потеряно незаметно. -
Требует ли плагин Mailtrap PHP SDK?
-
Нет. SwiftTrap обращается к REST API Mailtrap напрямую через WordPress HTTP API. Общий размер плагина — около 30 КБ.
-
Какие данные отправляются вовне?
-
Данные писем (получатели, тема, тело, вложения) отправляются на
send.api.mailtrap.ioиbulk.api.mailtrap.io. Статистика аккаунта запрашивается сmailtrap.io/api/accounts. См. Политику конфиденциальности Mailtrap. -
Есть ли ограничение на размер вложений?
-
Да — 25 МБ на письмо (соответствует лимиту API Mailtrap).
Отзывы
Нет отзывов об этом плагине.
Участники и разработчики
«SwiftTrap for Mailtrap» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
УчастникиПеревести «SwiftTrap for Mailtrap» на ваш язык.
Заинтересованы в разработке?
Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.
Журнал изменений
3.0.1
- Исправлено: обработчик вебхуков теперь проверяет настоящий заголовок
Mailtrap-Signature(HMAC-SHA256) от Mailtrap вместо заголовка, который Mailtrap никогда не отправляет. Все реальные вызовы вебхука отслеживания доставки полностью отклонялись с момента появления этой функции в 2.4.0. - Исправлено: разбор данных вебхука теперь корректно разворачивает конверт Mailtrap
{"events": [...]}, поэтому подтверждённые события доходят доdo_action('swifttrap_mailtrap_webhook_event', ...). - Исправлено: карточка использования на странице статистики теперь обращается к актуальному эндпоинту Mailtrap
/api/billing/usageвместо устаревшего пути в рамках аккаунта, который не возвращал данных. - Исправлено: удаление плагина теперь очищает реальные кэшированные transient-записи вместо имён ключей до версии 2.3.0, которые больше не совпадают.
- Улучшено: поиск получателя в журнале писем и обращения к API аккаунта теперь последовательно используют синтаксис фильтров в квадратных скобках и авторизацию по Bearer-токену.
3.0.0
- Критическое изменение: полностью удалено локальное файловое логирование писем. Файлы журнала больше не записываются на диск — устраняет риск OOM/переполнения диска на сайтах с высокой нагрузкой.
- Новое: панель журнала писем на странице статистики получает живые данные напрямую из API Mailtrap (
GET /api/email_logs). - Новое: журнал писем поддерживает фильтрацию по email-адресу получателя, статусу доставки и диапазону дат.
- Новое: пагинация на стороне клиента — буферизует до 1000 записей от Mailtrap за один вызов API, показывает по 20 строк с навигацией Prev/Next. Автоматически загружает следующую партию, когда буфер исчерпан.
- Новое: обработчик вебхуков теперь вызывает
do_action('swifttrap_mailtrap_webhook_event', $event)для каждого события доставки, что позволяет сторонним интеграциям обходиться без модификации плагина. - Удалено: экспорт в CSV, очистка файла журнала, модальное окно деталей записи, повторная отправка из журнала, настройка количества записей на странице и очистка журнала по cron. Всё это заменено живым представлением из API.
- Исправлено: страница статистики больше не создаёт лишний атрибут nonce на оборачивающем элементе.
2.4.2
- Исправлено: журнал писем терял большую часть записей при высокой нагрузке или параллельной отправке. Каждая запись перечитывала и перезаписывала весь файл журнала, поэтому параллельные процессы затирали строки друг друга. Теперь запись выполняется атомарно, с эксклюзивной блокировкой и дозаписью в конец файла, поэтому дашборд статистики (отправки в день, категории, итоги) отражает реальное количество отправленных писем.
- Улучшено: логирование больше не замедляет крупные рассылки — дозапись выполняется за O(1) вместо перечитывания и перезаписи всего файла на каждое письмо.
2.4.1
- Исправлено: список блокировок теперь читает поле
typeот Mailtrap, поэтому дашборд показывает реальные счётчики BOUNCE / COMPLAINT / UNSUBSCRIBE / MANUAL вместо того, чтобы помечать каждую запись как ручную. - Новое: строки блокировок показывают категорию возврата письма (если она предоставлена) для детализации hard-bounce.
- Исправлено: даты блокировок теперь форматируются на сервере с использованием формата даты сайта вместо локали браузера.
- Новое: ссылка «Посмотреть все в Mailtrap» на карточке блокировок.
- Новое: селектор количества записей на странице (10/25/50/100) на экране журнала писем.
- Улучшено: действия в шапке журнала писем выровнены по правому краю; поле фильтра по дате оформлено в едином стиле с остальными полями.
2.4.0
- Новое: REST-эндпоинт вебхука (
swifttrap/v1/webhook) для отслеживания статусов delivered, bounced, opened и clicked. - Новое: CRUD-управление блокировками на странице статистики в админке и проверка получателей перед отправкой, чтобы пропускать заблокированные адреса.
- Новое: механизм отката, возвращающий
nullвpre_wp_mailпри ошибке API, чтобы письмо отправлял нативныйwp_mail. - Новое: тест Site Health для проверки соединения и статуса верификации домена.
- Новое: обновлённый интерфейс журнала в админке с поиском, фильтрацией, экспортом в CSV, модальными окнами предпросмотра данных в iframe и действиями повторной отправки.
- Новое: таблица настроек категорий для правил сопоставления категорий с потоками и переопределения отправителя.
- Новое: пространство команд WP-CLI
wp swifttrap(test, stats, prune-logs, send-suppression-sync). - Новое: настройка контроля размера вложений.
- Рефакторинг: форматирование строки CSV вынесено в отдельную вспомогательную функцию для модульных тестов. Полностью покрыто и проверено набором тестов.
2.3.0
- Минимальная версия PHP теперь 8.0; протестировано до WordPress 7.0.
- Надёжность: автоматические повторные попытки с задержкой при временных ошибках API Mailtrap (429/5xx, с учётом Retry-After).
- Детерминированное хранение журнала через ежедневное cron-событие (заменяет прежнюю вероятностную очистку).
- Кэши аккаунта/статистики/доменов/блокировок теперь привязаны к конкретному API-токену, поэтому смена токена больше не отдаёт устаревшие данные.
- Надёжная обработка JSON для всех ответов API Mailtrap; кэш настроек безопасен для мультисайтов.
- Новое: кнопка «Проверить токен» на экране настроек.
- Код модернизирован под идиомы PHP 8; добавлен первый набор модульных тестов.
2.2.2
- Plugin URI: теперь указывает на отдельную страницу https://plugins.symonov.com/swifttrap-for-mailtrap/
- Без изменений кода или поведения
2.2.1
- Readme: переписано в стиле USP-first с акцентом на Mailtrap Email API (в противовес SMTP) и маршрутизацию по массовому/транзакционному потокам
- Tags:
email/mail/smtpзаменены на целевыеmailtrap,transactional-email,email-api,wp-mail,email-log - FAQ: добавлено сравнение с WP Mail SMTP / Post SMTP, поддержка шаблонов Mailtrap и маршрутизация в массовый поток
- Протестировано до WordPress 7.0
2.2.0
- Все вызовы file_get_contents/file_put_contents заменены на WP_Filesystem API
- Исправлена санитизация $_GET с корректным использованием wp_unslash() и аннотаций phpcs
- Улучшены заголовки PHPDoc во всех файлах
- Улучшено соответствие WordPress Coding Standards
2.1.0
- Добавлен статус верификации домена отправки на странице статистики
- Добавлен список блокировок (возвраты, жалобы, отписки) на странице статистики
- Добавлен фильтр
swifttrap_mailtrap_templateдля поддержки шаблонов Mailtrap - Добавлен фильтр
swifttrap_mailtrap_custom_variablesдля метаданных отслеживания писем - Вынесена переиспользуемая функция
swifttrap_mailtrap_get_account_id()с кэшированием через transient
2.0.0
- Убрана зависимость от Mailtrap SDK — используется напрямую WordPress HTTP API
- Никаких внешних зависимостей, общий размер плагина ~30 КБ
- Улучшено соответствие требованиям WP.org
1.3.0
- Безопасность: директория журнала защищена от прямого доступа через веб
- Добавлена проверка размера вложений (лимит 25 МБ)
- Добавлена проверка на пустого получателя
- Исправлена обработка часового пояса при отображении журнала
- Оптимизировано вычисление категории письма
- Улучшена блокировка файла журнала
