Настройка Postfix для работы в качестве SMTP-ретранслятора на Ubuntu с использованием Mailjet

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

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

SMTP Relay на подмогу

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

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

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

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

Читайте также:  Конфигурация Sendmail через внешний SMTP реле

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

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

  • Настроить протокол SMTP.
  • Управление адресами отправителей
  • Настроить аутентификацию домена с использованием SPF и DKIM.

Почтовый реле-сервер Postfix через SMTP

Конфигурация Postfix SMTP Relay на Ubuntu

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

sudo apt install postfix libsasl2-modules

Когда появится следующее уведомление, нажмите Tab, а затем Enter.

Аутентификация для relayhost в Postfix.

После этого выберите второй пункт: Сайт.

Конфигурация relayhost для Postfix.

Укажите название почтовой системы. Например, я использую свое доменное имя linux16.ru .

Настройка смарт-хоста Postfix на Ubuntu.

После того как Postfix будет установлен, откройте файл настроек.

sudo nano /etc/postfix/main.cf

Определите следующую строку.

relayhost =

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

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

Адрес SMTP-сервера и данные для входа в систему будут отображены.

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

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

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.

Читайте также:  Как установить Magento2 на Fedora 34/33

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.

Читайте также:  Как установить Swift на Ubuntu 16.04 LTS

Настройка реле SMTP с использованием SPF и DKIM.

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

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 на Ubuntu, чтобы обойти порт 25 или IP-черные списки. Если вы считаете эту статью ценной, не забудьте подписаться на нашу бесплатную рассылку для получения дополнительных советов и рекомендаций. Берегите себя.