smtp trap что это
Что такое Mailtrap, или Как тестировать письма на стадиях разработки и предпродакшена
Обзор посвящён сервису Mailtrap. Он помогает тестировать письма на стадии разработки и защищает ваших клиентов от случайного получения тестовых писем.
Зачем нужен Mailtrap: безопасное тестирование писем
Mailtrap — сервис безопасного тестирования писем. Он помогает разработчикам решать следующие задачи:
Схема работы Mailtrap: разработчик создаёт тестовый электронный ящик, настраивает почтовый сервер и отправляет пробные письма. Все сообщения гарантированно попадают в тестовый электронный ящик. Здесь можно увидеть рейтинг спамности письма, проанализировать исходный код.
Mailtrap — платный сервис. Есть бесплатный тариф, но он предназначен только для личных некоммерческих проектов. Стоимость платных пакетов начинается с 9,99 долларов США в месяц.
Тарифные планы Mailtrap
Важно! Mailtrap открывает доступ к расширенным возможностям сервиса некоммерческим проектам, которые делают продукты с открытым исходным кодом. Чтобы получить преференции, необходимо документально подтвердить статус неприбыльной организации.
Подробнее о функциональности Mailtrap дальше.
Что может Mailtrap: spam score, анализ HTML, интеграции
После регистрации пользователь получает доступ в личный кабинет. Здесь можно создавать проекты и тестовые папки «Входящие» (инбоксы). Над проектами можно работать совместно с другими пользователями. Эта функция доступна платным подписчикам.
Владельцу свободной подписки Mailtrap выделяет один инбокс размером 5 МБ. В нём можно хранить до 50 писем одновременно. В месяц владелец бесплатного ящика может получить до 500 писем.
Интерфейс личного кабинета
В инбоксе доступны данные для настройки SMTP и POP3. Они понадобятся для конфигурации тестовых рассылок.
Данные для настройки SMTP
Также в тестовой папке «Входящие» есть список интеграций. С помощью выпадающего меню можно выбрать подходящий вариант. Mailtrap интегрируется с Ruby on Rails, Django, Laravel, Yii2, Zend, WordPress и так далее.
Выбор нужной интеграции
На вкладке Email Address есть тестовый электронный адрес. На него можно отправлять письма вручную. Функция недоступна на тестовом тарифе.
На платном тарифе пользователю доступен тестовый электронный адрес
Платная подписка позволяет автоматически форвардить тестовые письма на реальные электронные адреса. Настройки доступны на вкладке Auto Forward. Сообщения можно пересылать на конкретные адреса или на все электронки выбранного домена, например, @hexlet.io.
Настройки автоматического форвардинга
На вкладке Manual Forward можно вручную пересылать тестовые письма на реальные адреса. На вкладке Team Members можно поделиться инбоксом с членами команды. Функции доступны после оформления платной подписки.
Чтобы проанализировать тестовое письмо, выберите его во входящих.
Выбираем нужное письмо
На вкладке HTML можно оценить внешний вид письма. Чтобы увидеть, как выглядит сообщение на девайсах разного типа, нажмите отмеченную на иллюстрации иконку.
Проверяем отображение письма
На открывшейся странице можно проверить адаптивность письма.
Проверяем отображение письма на экранах с разным разрешением
На вкладке HTML Source можно увидеть письмо в формате HTML.
На вкладке Raw доступны необработанные данные, полученные с SMTP.
Проверяем необработанные данные
На вкладке Analysis доступны сведения об индексе спамности письма, а также информация о включении рассылки в чёрные списки.
Изучаем spam score письма
Обратите внимание, на этой вкладке есть расшифровка рейтинга спамности: список правил и вклад каждого правила в spam score. Используйте эти данные, чтобы уменьшить вероятность фильтрации рассылки.
Расшифровка spam score
На вкладке Check HTML доступны результаты автоматической проверки HTML и CSS сообщения. Информация представлена в формате «Строка с ошибкой — Название правила — Название клиента, для которого код невалидный».
Изучаем результаты автоматической проверки HTML и CSS
На вкладке SMTP Info есть список получателей рассылки. Функция доступна после оформления платной подписки.
Мы рассмотрели возможности Mailtrap. Переходим к практической части: настройке SMTP и рассылке тестовых писем.
Как отправлять тестовые письма с помощью Mailtrap: простые настройки
Чтобы настроить SMTP на вашем проекте, в списке интеграций выберите подходящий вариант. Я тестировал Mailtrap на блоге, который работает на WordPress.
Конфигурация SMTP для проекта на WordPress
Для работы с SMTP пользуюсь плагином WP Mail SMTP, но вы можете найти альтернативное решение в официальном каталоге WP.
Перейдите на страницу настроек SMTP: WP Mail SMTP — Настройки. В методах отправки почты укажите вариант «Прочие SMTP». В настройках укажите данные, доступные в интеграциях в инбоксе Mailtrap.
Сохраните изменения и отправьте тестовое письмо. В случае с проектом на WordPress это можно сделать с помощью WP Mail SMTP.
Также можно воспользоваться инструментами рассылки, которые вы уже используете на проекте. Например, на WordPress это может быть «Новостная рассылка».
Создаём тестовую рассылку
Создайте и отправьте тестовое письмо. Если всё сделано верно, оно попадёт в инбокс Mailtrap.
Тестовые письма попали в ящик Mailtrap
Заключение
В обзоре мы рассмотрели возможности Mailtrap и настроили тестовую рассылку на проекте, который работает на WordPress. Остаётся напомнить о доступных интеграциях сервиса Mailtrap с разными платформами и фреймворками, включая Ruby on Rails, Django, Laravel, а также о возможности использовать функциональность сервиса через API. Если у вас остались вопросы, задайте их в комментариях.
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Detection mailing viruses in corporate network
Ilya Evseev
Copyright ╘ 2004 IE
Введение
К недостаткам антивирусных мониторов можно отнести:
Рассматриваемое ниже решение лишено перечисленных недостатков, но имеет свои собственные:
Собственно излечение должно производиться обычным путём, то есть запуском антивирусной программы с чистого носителя.
Первый недостаток является наименее существенным, потому что именно на почтовые вирусы приходится подавляющая часть Интернет-эпидемий последних лет. Причин, по которым электронная почта превратилась в наиболее популярную для вирусных атак среду, несколько:
Чтобы иметь возможность в упреждающем порядке реагировать на появление новых вирусов до того, как эпидемия наберёт обороты, разработчики антивирусных программ используют т.н. почтовые ловушки. Почтовая ловушка представляет из себя более-менее обычный почтовый ящик, который:
Суть предлагаемого решения сводится к организации импровизированной ловушки ( trap) внутри нашей собственной сети. Почтовое ПО на обслуживаемых компьютерах настраивается таким образом, чтобы сам факт обращения к ловушке, вне зависимости от передаваемого содержимого, сигнализировал о том, что соответствующий компьютер заражён.
Наша ловушка будет слегка отличаться от описанной выше и представляет из себя не почтовый ящик под управлением рабочего SMTP-сервера, а независимую программу-сервер, минимально имитирующий работу сервера настоящего, плюс некоторое обрамление на уровне операционной системы.
Фальшивая и рабочая системы
Выражаясь образно, перед тем, как настраивать ловушку, для неё потребуется расчистить пространство, сдвинув в сторону реально используемую почтовую инфраструктуру. Желательно при этом, чтобы с точки зрения пользователей всё продолжало работать без изменений, существенных плюс неприятных.
На каждой рабочей станции должно быть настроено два почтовых клиента:
Чем обусловлено данное требование? Все почтовые вирусы, прославившиеся масштабами разрушений, основаны на двух постулатах:
Из этого следуют два вывода:
Заражение через письмо происходит следующим образом:
Если второй способ является отличительной чертой Outlook (остальные почтовые клиенты подобной инициативностью в отношении т.н. active content не страдают), то первый расчитан на невнимательного или неквалифицированного пользователя, и подпадает под категорию т.н. social engineering.
Как правило, среднестатистический вирус не может или не пытается определить, через какой почтовый клиент он попал в систему, и начинает атаку на другие компьютеры, используя сведения из настроек и адресной книги Outlook’а или сервера MAPI (которым зачастую является всё тот же Outlook).
Настройка рабочей системы
Конфигурация фактически используемого почтового клиента на рабочей станции должна быть изменена следующим образом:
Затем сетевому администратору потребуется выполнить настройки в одном из трёх вариантов в зависимости от того, какой SMTP-сервер, или серверы, используется в организации для отправки почты:
Далее для демонстрации настроек сервера используется, если это не оговорено особо, следующее программное обеспечение:
Собственный SMTP-сервер на примере Postfix
Чтобы перенастроить Postfix, отредактируйте в файле /etc/postfix/master.cf все строки, начинающиеся с smtp inet, заменив smtp на номер порта, например, на 325. Желательно, чтобы новый номер.
При этом возникает проблема внешних соединений. Дело в том, что по протоколу SMTP почта на наш сервер поступает не только от клиентов, но и от других серверов из внешней сети, причём возможности заставить эти серверы пользоваться нестандартным портом не существует. Данная проблема решается простым перенаправлением IP-порта. С этой целью могут быть использованы разные программы, в том числе и стандартный супердемон xinetd. В каталоге /etc/xinetd.d на SMTP-сервере должен быть размещён файл smtp-forward с содержимым, составленным по следующему образцу:
Не менее просто делается редиректор с помощью пакетного фильтра iptables, работающего с Linux kernel 2.4+:
Любопытная особенность данного редиректора состоит в том, что пакеты подвергаются перенаправлению на основании одного только номера порта, вне зависимости от указанного в них IP-адреса цели. Это позволяет задавать в настройках клиента в качестве адреса SMTP-сервера абсолютно любое внешнее имя, например, www.gov.no. Однако по причинам, изложенным в следующем разделе, рекомендуется указывать здесь имя самого компьютера-редиректора/smtp-ловушки.
Разные IP-адреса для SMTP-сервера и SMTP-ловушки
Рисунок 1. Доступ к IP-портам на внешнем и внутреннем сетевом интерфейсе из внутренней сети
Для организации этой схемы на сервере потребуется:
Редиректор на базе xinetd для фиксированного внешнего SMTP-сервера
Если персонал организации имеет почтовые ящики на ограниченном множестве внешних серверов, можно обойтись простым редиректором для каждого из них. Для этого на Линукс-маршрутизаторе, имеющем выход во внешнюю сеть, потребуется создать в каталоге /etc/xinetd.d множество файлов следующего вида:
Редиректор для произвольного внешнего SMTP-сервера
Для этого раздела в силу его малой актуальности решение не составлялось. По всей видимости, данная задача может быть решена только с использованием прокси-сервера SOCKS и клиентской утилиты SocksCapture. Поскольку на текущий момент у меня нет опыта их использования, в качестве отправной точки для собственных изысканий всем заинтересованным читателям предлагается статья Андрея Черезова в «КомпьюТерре», из которой и почерпнуты все мои нынешние познания о SOCKS.
Организация ловушки
Попав на компьютер и заразив его, почтовый вирус начинает заражать другие компьютеры. Для этого он производит рассылку заражённых писем одним из следующих способов:
Естественно, последние два варианта требуют, чтобы заражённая рабочая станция имела выход во внешнюю сеть либо напрямую, либо через SOCKS, либо через NAT.
Рисунок 2. Варианты отправки заражённых писем
Соответственно, отлавливать заражённые письма будут два компонента:
Кроме того, некоторые дополнительные настройки окажутся нелишними в Outlook’e на рабочих станциях.
Отправка на собственный сервер, заменённый фиктивным
Принимать запросы на отправку почты через 25-й порт из локальной сети под видом SMTP-сервера будет xinetd:
Чтобы у инициатора соединения не возникало сомнений, что ему отвечает именно SMTP-сервер, xinetd будет немедленно посылать приглашение, взятое из файла /var/local/smtptrap.banner, как это всегда делает отвечающая сторона в SMTP. Приглашение может содержать сравнительно произвольный текст:
Например, соединитесь netcat‘ом с настоящим сервером SMTP и возьмите за образец приглашение, которое он выведет.
Хотя приведённый ниже сценарий создавался скорее в демонстрационных целях, нежели для практического применения, в нём есть почти всё, что требуется полноценной программе такого рода:
Вместе с тем, не реализованы следующие моменты:
К сожалению, shell-программирование и регулярные выражения являются настолько широкими и увлекательными темами, что более подробные пояснения к исходному тексту рискуют далеко выйти за рамки данной статьи.
Отправка через внешний сервер, запрещаемая пакетным фильтром
В задачу работающего на компьютере-маршрутизаторе пакетного фильтра входит просмотр заголовков IP-пакетов, отправляемых из внутренней сети, уничтожение тех пакетов, чьим целевым портом является smtp/25, и оповещение системного администратора.
Пакетный фильтр может решать эту задачу одним из трёх способов:
Перед вводом дополнительных правил пакетный фильтр должен быть минимально настроен, например:
Вариант 1: автономный
За сообщениями iptables следит исправленный вариант сценария из предыдущего раздела. Исправление состоит из двух строк и заключается в имени просматриваемого файла и образце поиска:
Вариант 2: фальшивый SMTP-сервер на другом компьютере
В этом случае дополнительного сценария не требуется, так как всей обработкой будет заниматься сервер TRAP_HOST:
Вариант 3: фальшивый SMTP-сервер на локальном компьютере
Фальшивый адрес в адресной книге
Список адресов, по которым должна производиться рассылка, может быть составлен вирусом из самых разных источников:
Поэтому имеет смысл поместить в локальную адресную книгу фальшивую контактную запись. Фальшивая запись должна:
Благодаря этим свойствам:
Некоторое неудобство состоит в том, что фиктивная запись обязана быть локальной, то есть не может быть однократно добавлена в адресную книгу на сервере ActiveDirectory или LDAP. Казалось бы, эту рутинную операцию не составит труда автоматизировать, однако здесь начиниются проблемы.
Поиски приводят нас к WAB, Windows Address Book или адресной книге Windows. Хотя в большинстве случаев она вызывается из Outlook Express, WAB является самостоятельным приложением и имеет собственный программный интерфейс. Его применение Microsoft демонстрирует утилитой WabTool, которая доступна в виде исходных текстов. К сожалению, WabTool является GUI-приложением, то есть не может использоваться в не-интерактивном, пакетном режиме, и годится только в качестве заготовки. Принципиальное нежелание в очередной раз разгребать сочинённый Microsoft мусор помешало автору статьи написать на её базе требуемую утилиту.
Настройки для сервера Posfix должны быть дополнены следующим образом:
Заключение
В завершение хочу поблагодарить своих бывших сослуживцев, А.Н. Боженко и Н.А. Рыбину, за материал, послуживший поводом для написания данной статьи.
Введение в Mailtrap: фиктивный сервер SMTP для тестирования отправки электронных писем при разработке приложений
Russian (Pусский) translation by Mick Levin (you can also view the original English article)
Mailtrap предлагает вашей команде разработчиков фиктивный сервер SMTP для тестирования, просмотра и распространения электронных писем, посылаемых серверами, на которых ведется разработка. Подобное тестирование может проводиться с реальными данными без риска случайной их отправки настоящим клиентам. Этот сервис был создан компанией Railsware, и для многих задач разработки они предлагают его бесплатно.
Всё, что требуется сделать это зарегистрироваться на сервере Mailtrap и настроить вашу среду разработки так, чтобы письма отправлялись напрямую через SMTP на сервер Mailtrap.
И с этого момента вся исходящая почта будет оседать в Mailtrap. Вы можете просмотреть и отладить оправленные письма через дружественный интерфейс сервиса.
Вы даже сможете использовать реальные почтовые адреса клиентов вашего приложения во время его тестирования и разработки. Ваши автоматизированные тесты могут работать с реальными данными, потому что Mailtrap предотвратит риск отправки тестовых сообщений на почту реальных клиентов.
Сколько стоит сервис Mailtrap?
Для небольших команд разработчиков или для небольших приложений Mailtrap бесплатен. Для более крупных задач стоимость сервиса может изменяться от 120 до 300 долларов США в год:
Начинаем работу с Mailtrap
Регистрация делается просто. Вы даже можете использовать свою учётку в Google или GitHub:
Например, я использовать свою учётку в GitHub, и регистрация завершилась без труда:
После подтверждения регистрации Вам откроется интерфейс Mailtrap с демонстрационным почтовым ящиком:
Настройка Mailtrap
Далее я покажу как настроить разрабатываемое приложение для использования Mailtrap.
Нужно нажать иконку Settings в списке почтовых ящиков, и Вы увидите, что каждый ящик имеет свои собственные реквизиты сервера SMTP:
В любой момент эти реквизиты можно сбросить.
Сервис предлагает множество вариантов конфигураций:
Для быстрой демонстрации я использую приложение «Hello», которое обсуждается в нашей серии уроков «Programming With Yii2 series». Если Вы тоже захотите использовать код этого примера для тестирования Mailtrap, то Вы можете склонировать репозиторий GitHub, данные для этого приведены ниже.
В нашем примере на платформе Yii, я изменяю настройки SMTP в файле «config/web.php». Вот это то, что Yii задает по-умолчанию:
И я меняю это на мои настройки в Mailtrap:
После этого я иду на страницу моего приложения (http://localhost:8888/hello/user/register) и ввожу мой пароль:
Yii сразу отправляет мне электронное письмо с подтверждением:
И моментально это письмо появляется в моём почтовом ящике на Mailtrap.
Посьмо показывается примерно также, как и в любом почтовом клиенте, например, в Gmail.
Но кроме этого сервис предоставляет несколько закладок для отладки пришедших писем. Например, можно просмотреть исходный код HTML:
И еще можно провести проверку соответствия HTML кода стандартам:
А можно провести анализ на спам и на блокирование как самого сообщения, так и отправившего его сервера:
Mailtrap является мощным инструментом для отладки содержимого и кода писем.
Предоставление команде доступа к почтовым ящикам и сообщениям
Если требуется предоставить другим разработчикам доступ к почтовым ящикам, то можно это сделать отправив ссылки с приглашениями:
Или можно сделать так, что входящие письма будут автоматически перенаправляться на учётки других разработчиков.
Mailtrap API
Используя программный интерфейс API существует возможность написать автоматизированные тесты, проверяющие содержимое входящих писем. Документация к API приведена на сервере apiary. Иначе говоря, используя API Mailtrap у Вас есть возможность автоматически запускать скрипты и работать с реальными данными Вашего приложения, чтобы затем проверить содержимое и разметку электронных писем, содержащих настоящие данные.
Хотите узнать больше?
Возможности и средства отладки сервиса Mailtrap очевидно супер-полезны и доступны по низкой цене. Если Вы хотите увидеть еще одну демонстрацию использования Mailtrap, то у нас есть запись презентации, сделанной Ярославом Лазорем на конференции Railsberry 2012:
Mailtrap является простым и очень полезным продуктом, и я надеюсь, что Вы тоже захотите его попробовать в своей работе.
И мы приглашаем Вас оставить нам Ваши комментарии, поправки и дополнительные идеи. Вы можете посмотреть другие мои уроки на сервере Tuts+, и подписаться на мой Twitter @reifman.