Настройка реле SMTP Postfix на CentOS/Rocky Linux с использованием Sendinblue

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

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

SMTP Relay в помощь

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

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

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

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

Читайте также:  Установка основной версии Nginx на CentOS 7

Отличная новость о Sendinblue заключается в том, что для использования бесплатного SMTP relay вам не нужно вводить данные своей кредитной карты. Существуют и другие провайдеры электронной почты, которые предлагают бесплатные лимиты каждый месяц, но требуют указания данных карты. Я понимаю, как это может быть неудобно, особенно если у вас нет кредитной карты. Кроме того, Sendinblue проще настраивать по сравнению с другими провайдерами.

Зарегистрируйтесь в Sendinblue.

Зарегистрируйтесь бесплатно на sendinblue.com. После того как завершите настройку своего профиля, перейдите во вкладку Транзакционные, чтобы получить настройки SMTP. Если их там нет, свяжитесь со службой поддержки Sendinblue для активации функции транзакционных писем.

настройки SMTP реле для Sendinblue

Теперь необходимо сконфигурировать ваш SMTP-сервер Postfix с учетом параметров SMTP от Sendinblue.

Конфигурация SMTP-реле Postfix с использованием Sendinblue.

Сначала мы установим SMTP-сервер Postfix на CentOS/RHEL, используя следующую команду. Если Postfix уже запущен на вашем сервере, можно пропустить его установку.

sudo dnf install postfix

Для использования SMTP-реле вам необходимо установить два следующих пакета.

sudo dnf install cyrus-sasl-plain cyrus-sasl-md5

По умолчанию параметр relayhost в Postfix не задан, что можно проверить с помощью:

postconf relayhost

relayhost =

Выполните следующую команду для установки параметра relayhost на [smtp-relay. sendinblue.com]:587.

sudo postconf - e "relayhost = [smtp-relay. sendinblue.com]:587"

Используйте текстовый редактор командной строки, например Nano, чтобы внести изменения в главный конфигурационный файл Postfix.

sudo nano /etc/postfix/main.cf

Прокрутите страницу до самого низа. (В Nano это можно выполнить, нажав Ctrl+W, а затем Ctrl+V.) Вставьте следующие строки в конце данного файла.

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

Сохраните изменения и закройте документ. Для сохранения файла в текстовом редакторе Nano используйте сочетание клавиш Ctrl+O, затем нажмите Enter для подтверждения. Чтобы выйти из редактора, нажмите Ctrl+X.

Читайте также:  Как установить самую актуальную версию клиента BitTorrent Deluge на Ubuntu 16.04/14.04?

Далее необходимо создать файл /etc/postfix/sasl_passwd.

sudo nano /etc/postfix/sasl_passwd

Включите SMTP-хост реле и данные учетной записи SMTP в указанный файл, как показано ниже. Замените smtp_username и smtp_password на ваши имя пользователя и пароль, которые были предоставлены SendinBlue. Учтите, что между именем пользователя и паролем должно быть двоеточие.

[smtp-relay. sendinblue.com]:587 smtp_username:smtp_password

Сохраните и закройте документ. После этого сформируйте необходимый файл хэш — БД при помощи утилиты 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 будет использовать Sendinblue для отправки электронных писем.

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

Нажмите на выпадающее меню в верхнем правом углу панели управления вашей учетной записи Sendinblue, затем выберите раздел «Отправители и IP», чтобы добавить домен и адрес отправителя.

Добавьте отправителей и домены в Sendinblue.

Конфигурация аутентификации SPF/DKIM в SendinBlue

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

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

В вашей панели управления SendinBlue щелкните по имени вашей учетной записи в правом верхнем углу, затем выберите Senders & IPs. Выберите вкладку Domains -> Manage ->Подтвердите этот домен.

авторизовать домен в Sendinblue

Открывается всплывающее окно. Необходимо ввести первые три записи для вашего домена.

Читайте также:  Пошаговое руководство по созданию Snap пакета для Ubuntu 16.04

Аутентификация SPF и DKIM в Sendinblue

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

  • Посетите https://dnsmap.io, чтобы узнать, насколько широко распространены ваши DNS-записи в сети.
  • Чтобы проверить запись DKIM, посетите сайт https://www.dmarcanalyzer.com/dkim/dkim-check/. Введите «mail» в поле селектора и укажите ваше доменное имя, чтобы узнать о статусе записи DKIM и возможных ошибках.

Когда записи SPF и DKIM настроены корректно и подтверждены, ваш домен получает аутентификацию в Sendinblue.

Аутентификация домена в Sendinblue

Отправка пробного электронного письма

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

sudo dnf install mailx echo "это тестовое электронное письмо." | mailx - r адрес-отправителяПривет!адрес-получателя

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

Testing-Email-Score-and-Placement

Диагностика и решение проблем

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

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

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

smtp-relay. sendinblue.com smtp_username:smtp_passowrd

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

sudo postmap /etc/postfix/sasl_passwd

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

sudo systemctl restart postfix

Теперь у вас есть возможность очистить очередь писем и попробовать повторно доставить ранее отправленные сообщения.

sudo postqueue - f

Добавление новых доменов.

Если вы установили почтовый сервер на новом хостинге для нового домена и хотите настроить SMTP-реле для этого доменного имени, просто выполните шаги 2, 3 и 4 еще раз.

Заключение

Вот и завершили! Я надеюсь, что данное руководство стало для вас полезным в процессе настройки Postfix SMTP-реле на CentOS/Rocky Linux с целью обхода порта 25 или IP-черных списков. Как и прежде, если вы считаете этот материал ценным, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать больше полезных советов и рекомендаций.