Настройка SMTP Relay с использованием Mailjet на системе Debian с Postfix

В данном руководстве мы рассмотрим процесс настройки SMTP-реле Postfix с Mailjet на операционной системе Debian. Postfix является широко используемым открытым SMTP-сервером. Ранее я опубликовал статью, в которой описывается, как быстро развернуть собственный почтовый сервер на Debian с помощью Modoboa, что оказало помощь многим пользователям в запуске их почтовых решений.

Некоторые пользователи сообщили мне, что их хостинг — или интернет-провайдеры заблокировали порт 25 в целях борьбы со спамом, что мешает отправке почты. Vultr разблокирует этот порт по запросу, а ScalaHosting вовсе не ограничивает его, поэтому я советую рассмотреть VPS от ScalaHosting. Однако некоторые другие провайдеры, такие как DigitalOcean, не снимают блокировку порта 25. В таком случае, какие шаги можно предпринять для обхода этой блокировки, если вы не хотите или не можете сменить провайдера?

На помощь приходит SMTP-ретранслятор.

Для обхода блокировки порта 25 и отправки писем за пределы вашей сети можно использовать SMTP реле, которое функционирует через порт 587. При этом ваш почтовый сервер не отправляет сообщения напрямую на конечный адрес. Вместо этого существует промежуточный почтовый сервер, известный как смарт-хост или релейный хост, который выполняет отправку писем от вашего имени. Ваш почтовый сервер устанавливает связь со смарт-хостом через порт 587, а затем уже смарт-хост отправляет сообщения на почтовый сервер получателя, используя порт 25.

SMTP релей может помочь обойти антиспам-листы в случае, если ваш IP-адрес оказался в черном списке. При этом почтовый сервер получателя проверяет IP-адрес смарт-хоста, а не ваш собственный. Поскольку сервисы SMTP релея поддерживают положительную репутацию IP-адресов, ваши сообщения имеют возможность проходить через черные списки.

Читайте также:  Полное руководство по использованию утилиты iostat в Linux для мониторинга производительности системы

Бесплатная отправка до 200 писем в день с помощью Mailjet.

Существует множество поставщиков услуг электронной почты (ESP), способных выполнять функции смарт-хоста. Некоторые из них предлагают услуги за небольшую плату, в то время как другие предоставляют бесплатные лимиты на отправку писем каждый месяц. В этой статье я расскажу о Mailjet — сервисе, который позволяет отправлять до 200 писем в день без оплаты.

Хорошо, что Mailjet не запрашивает данные вашей кредитной карты для доступа к бесплатному SMTP relay. Есть и другие провайдеры, которые предлагают бесплатный лимит каждый месяц, но при этом требуют вводить данные карты. (Понимаю, как это может быть неудобно, если у вас нет кредитной карты.) Кроме того, настройка Mailjet значительно проще по сравнению с другими сервисами.

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

  • Конфигурация SMTP
  • Администрирование адресов отправителей
  • Конфигурация аутентификации домена (SPF и DKIM)

SMTP реле на Postfix

Конфигурация релея Postfix SMTP на Debian

Для начала установим SMTP-сервер Postfix на Debian, используя следующую команду. Если Postfix уже запущен на вашем сервере, установку можно пропустить, однако вам необходимо установить пакет libsasl2-modules.

sudo apt install postfix libsasl2-modules

При появлении следующего сообщения нажмите клавишу Tab, а затем Enter.

debian-postfix-relayhost-authentication

Затем выберите второй вариант: веб-сайт.

debian-postfix-relayhost-configuration

Затем укажите имя электронной почты для системы. К примеру, я ввожу свое доменное имя linux16.ru.

postfix-smarthost-debian

По завершении установки Postfix перейдите к редактированию конфигурационного файла.

sudo nano /etc/postfix/main.cf

Отследите следующую последовательность.

relayhost =

Значение по умолчанию не задано. Чтобы его получить, необходимо обратиться к своей учетной записи Mailjet. Войдите в панель управления Mailjet и выберите опцию «Настроить мой SMTP».

Настройка реле SMTP Postfix с Mailjet.

Вы сможете ознакомиться с адресом SMTP-сервера и данными для входа в систему SMTP.

Обход порта 25 в Postfix

В конфигурационном файле Postfix измените параметр relayhost на in-v3.mailjet.com:587.

Читайте также:  Создание скриншотов веб-сайтов с использованием PHP и Linux

relayhost = in-v3.mailjet.com:587

После этого вставьте указанные строки в конец данного файла.

# конфигурации исходящего реле smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = may header_size_limit = 4096000

Сохраните и закройте документ. После этого создайте файл /etc/postfix/sasl_passwd.

sudo nano /etc/postfix/sasl_passwd

Включите SMTP реле-хост и учетные данные SMTP в этот файл, как указано ниже. Подмените api-key и secret-key на ваш действительный API ключ Mailjet и секретный ключ.

in-v3.mailjet.com:587 api-key:secret-key

Сохраните файл и закройте его. После этого создайте файл хеш-таблицы, используя команду postmap.

sudo postmap /etc/postfix/sasl_passwd

Теперь у вас должен быть создан файл /etc/postfix/sasl_passwd. db. Перезапустите Postfix, чтобы применить изменения.

sudo systemctl restart postfix

Файлы sasl_passwd и sasl_passwd. db по умолчанию доступны для чтения любым пользователем на сервере. Установите права доступа 600, чтобы только пользователь root имел возможность читать и записывать в эти файлы.

sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd. db

С этого момента Postfix начнет отправлять электронные письма через Mailjet.

Ввод адресов отправителей

Чтобы отправлять электронные письма через Mailjet, необходимо добавить домен или адрес отправителя. Войдите в панель управления Mailjet и выберите опцию «Управление адресами отправителей». Вы можете подтвердить как весь домен, так и определенные адреса электронной почты.

Проверить домен отправителя или адрес отправителя

Конфигурация аутентификации для домена

На данном этапе важно настроить записи SPF и DKIM, так как это существенно увеличит шансы ваших электронных писем попасть в папку «Входящие», а не в «Спам».

  • SPF, или Sender Policy Framework, представляет собой запись в DNS, которая определяет, какие IP-адреса имеют право отправлять электронные письма от имени вашего домена.
  • DKIM: DomainKeys Identified mail.Mailjet использует цифровую подпись для ваших писем, применяя закрытый ключ. Запись DKIM включает открытый ключ, который даёт возможность почтовому серверу адресата подтвердить подпись.

В интерфейсе управления Mailjet выберите опцию «Настройка аутентификации домена». Статусы SPF и DKIM изначально отображаются как ошибочные. Нажмите на кнопку управления и выполните указания для добавления записей SPF и DKIM.

Читайте также:  Конфигурация ParseDMARC на Ubuntu 18.04 и 16.04 для обработки отчетов DMARC

Настройка SMTP релея, а также конфигурация SPF и DKIM.

После настройки записей SPF и DKIM подождите несколько минут, а затем обновите страницу в mailjet. Распространение ваших новых DNS-записей может занять некоторое время в зависимости от вашего провайдера DNS. Когда записи SPF и DKIM будут правильно настроены и процесс распространения завершится, mailjet уведомит вас о корректности этих записей.

Для настройки Mailjet требуется правильно настроить SPF и DKIM.

Отправка пробного сообщения.

Теперь мы можем воспользоваться командой mailx для отправки тестового письма, как показано далее.

sudo apt install bsd-mailx echo "это тестовое письмо." | mailx - r адрес-отправителя

  • Привет, - s!
  • адрес-получателя

    Вы можете отправить пробное письмо через свой веб-клиент электронной почты или настольное почтовое приложение. Также стоит проверить свой почтовый рейтинг на сайте https://www.mail-tester.com. Как вы можете заметить, мне удалось достичь максимального результата.

    Результат проверки на спам

    Поиск и устранение неисправностей

    Если ваше письмо не достигло получателя, и вы увидели следующее сообщение в журнале почты (/var/log/mail.log),

    Доступ к ретрансляции запрещен (в ответ на команду RCPT TO)

    Возможно, вам нужно будет изменить файл /etc/postfix/sasl_passwd, убрав номер порта после имени хоста, как указано ниже.

    in-v3.mailjet.com api-key:secret-key

    Сохраните изменения и закройте файл. После этого вновь создайте индексный файл.

    sudo postmap /etc/postfix/sasl_passwd

    Перезапустите Postfix, чтобы новые настройки начали действовать.

    sudo systemctl restart postfix

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

    sudo postqueue - f

    Расширение списка доменов.

    Если вы установили почтовый сервер на новом компьютере для нового домена и планируете настроить SMTP-ретрансляцию для этого доменного имени, выполните те же действия:

    • Настройте настройки ретрансляции SMTP в Postfix.
    • Проверьте новое доменное имя через интерфейс управления Mailjet.
    • Настройте параметры SPF и DKIM.

    Заключение

    Вот и завершилось! Надеюсь, этот гайд оказался полезным для настройки SMTP-ретрансляции Postfix на Debian, чтобы обойти ограничения порта 25 или черные списки IP. Если вам понравился этот материал, не забудьте подписаться на нашу бесплатную рассылку для получения дополнительных советов и рекомендаций. Берегите себя!