Статьи

Введение в Mailtrap: поддельный SMTP-сервер для предпроизводственного тестирования

Конечный продукт
Что вы будете создавать

Mailtrap предоставляет поддельному SMTP-серверу для вашей команды разработчиков, чтобы тестировать, просматривать и обмениваться электронными письмами, отправленными из подготовительных сред, и тестировать с реальными данными без риска спама от реальных клиентов. Он создан Railsware и для многих задач разработки использование Mailtrap будет бесплатным.

По сути, вы регистрируетесь в Mailtrap и отправляете всю электронную почту в своей рабочей среде через ваш поддельный SMTP-сервер Mailtrap.

Используйте MailTrap для захвата электронной почты из тестовых сред разработки и промежуточных

Тогда все ваши mailz принадлежат Mailtrap. Вы можете просматривать и отлаживать свою электронную почту в дружественном графическом интерфейсе Mailtrap.

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

Для небольших разработчиков или небольших задач Mailtrap бесплатен. Для больших усилий затраты варьируются от 120 до 300 долларов в год:

Оценка Mailtrap

Зарегистрироваться очень просто. Вы даже можете использовать свою учетную запись Google или GitHub:

Регистрация в Mailtrap Вы можете зарегистрироваться через Google или Github.

Я использовал свою учетную запись GitHub, и процесс был прост:

Авторизуйте Signhub с Github через OAuth

После подтверждения вы увидите демонстрационный почтовый ящик в графическом интерфейсе Mailtrap:

Панель инструментов Mailtrap с вашими почтовыми ящиками

Далее я расскажу вам, как настроить Mailtrap в вашей среде разработки.

Если щелкнуть значок « Настройки» в списке входящих, вы увидите, что каждая папка «Входящие» Mailtrap имеет свои учетные данные SMTP-сервера:

Учетные данные SMTP-сервера Mailtrap

Вы можете сбросить эти учетные данные в любое время.

Mailtrap предлагает множество примеров конфигурации:

Mailtrap Dropdown selector для параметров конфигурации

Для простоты я буду использовать приложение Hello из серии «Программирование с Yii2» для настройки Mailtrap. Если вы хотите использовать оттуда код для тестирования Mailtrap, клонируйте репозиторий GitHub, связанный с этим руководством.

С помощью Yii я обновляю настройки SMTP SwiftMailer в config / web.php. Вот значение по умолчанию:

1
‘errorHandler’ => [ ‘errorAction’ => ‘site/error’, ], ‘mailer’ => [ ‘class’ => ‘yii\swiftmailer\Mailer’, ‘viewPath’ => ‘@app/mailer’, ‘useFileTransport’ => false, ‘transport’ => [ ‘class’ => ‘Swift_SmtpTransport’, ‘host’ => ‘your-smtp-host-domain’, ‘username’ => ‘your-email-or-username’, ‘password’ => ‘your-password’, ‘port’ => ‘587’, ‘encryption’ => ‘tls’, ], ], ‘log’ => [ ‘traceLevel’ => YII_DEBUG ?

Что я изменил в настройках Mailtrap:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
‘errorHandler’ => [
           ‘errorAction’ => ‘site/error’,
       ],
       ‘mailer’ => [
               ‘class’ => ‘yii\swiftmailer\Mailer’,
               ‘viewPath’ => ‘@app/mailer’,
               ‘useFileTransport’ => false,
               ‘transport’ => [
                   ‘class’ => ‘Swift_SmtpTransport’,
                   ‘host’ => ‘mailtrap.io’,
                   ‘username’ => ‘294XXXXXXXXXXdd20’,
                   ‘password’ => ‘403XXXXXXXXXX2f7’,
                   ‘port’ => ’25’,
                   ‘encryption’ => ‘tls’,
                               ],
           ],
       ‘log’ => [
           ‘traceLevel’ => YII_DEBUG ?

Затем я посетил http: // localhost: 8888 / hello / user / register, чтобы зарегистрироваться снова:

Yii Hello Application Регистрация

Yii отправляет подтверждение по электронной почте:

Yii Подтверждение по электронной почте Объявление

Мгновенно сообщение появляется в моем почтовом ящике.

Примечание. Это не следует путать с подтверждением учетной записи Mailtrap — это электронное письмо с подтверждением учетной записи приложения Yii Hello, отправленное моим приложением.

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

Отображение почтового ящика

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

Mailtrap Message HTML-представление источника

Вот вид проверки HTML по вашей электронной почте:

Mailtrap-сообщение Проверьте HTML-валидатор

И вот анализ спама и черный список вашего сообщения и сервера:

Анализ почтовых сообщений - отчет о спаме и черный список

Mailtrap — такой мощный способ отладки содержимого и разметки ваших исходящих сообщений электронной почты.

Если ваша команда больше, вы можете пригласить всех своих разработчиков для доступа к каждому почтовому ящику со ссылками:

Mailtrap приглашает разработчиков в ваши почтовые ящики

Или вы можете автоматически пересылать все сообщения в свои собственные учетные записи и приглашать их через собственные учетные записи Mailtrap:

Пересылка почты и общие пользователи

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

Пример просмотра входящего сообщения API Mailtrap

Возможности Mailtrap и функции отладки, очевидно, очень полезны и доступны по цене. Если вы хотите увидеть еще одну демонстрацию, вот молниеносная беседа о Mailtrap от Ярослава Лазора из Railsberry 2012:

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

Пожалуйста, оставьте любые комментарии, исправления или дополнительные идеи ниже. Вы можете просмотреть мои другие учебники Tuts + на моей странице инструктора или подписаться на меня в Twitter @reifman .