В данной статье мы рассмотрим процесс настройки Postfix в роли SMTP сервера для отправки сообщений на CentOS 8. Сначала я объясню, как выполнить эту настройку для одного домена, а затем вы сможете использовать предложенные шаги для конфигурации нескольких доменов, если это потребуется.

Содержание статьи
- 1 Применение сценария
- 2 Необходимо выполнить начальные требования.
- 3 Настройте имя хоста и запись PTR.
- 4 Установка и конфигурация OpenDKIM на CentOS 8.
- 5 Разместите свой открытый ключ в записях DNS.
- 6 Проверьте ключ DKIM.
- 7 Интегрируйте Postfix с OpenDKIM.
- 8 Добавьте запись SPF в систему DNS.
- 9 Задайте адрес отправителя, его имя и путь для возврата.
- 10 Активируйте TLS-шифрование для отправляемых сообщений электронной почты.
- 11 Проверка оценок отправителя.
- 12 Что предпринять, если ваши письма по-прежнему попадают в папку со спамом?
- 13 Настройка сервера SMTP на базе Postfix для отправки почты с нескольких доменов.
- 14 Диагностика проблем
- 15 Отправка email-сообщений с альтернативного сервера.
- 16 Исключение личных данных из тем сообщений электронной почты.
- 17 Автоматизированное обновление сертификата TLS.
- 18 Рассылка массовых электронных сообщений.
- 19 В первую очередь следует отправить команду STARTTLS.
- 20 Заключение
Применение сценария
Если ваш веб-сайт или приложение требует отправки транзакционных электронных писем пользователям (например, писем для сброса пароля), вам потребуется настроить сервер SMTP для отправки этих писем. Postfix — отличное решение для настройки SMTP на вашем веб-сервере, обеспечивая надежную отправку без необходимости в обратной связи от пользователей или дополнительной конфигурации для обработки ответных писем.
Необходимо выполнить начальные требования.
Для отправки электронных писем с вашего сервера необходимо открыть порт 25 (исходящий). Однако многие интернет-провайдеры и хостинг-компании, включая DigitalOcean, ограничивают доступ к этому порту в целях борьбы со спамом. Я советую обратить внимание на ScalaHosting, так как они не блокируют порт 25. После получения сервера на платформе ScalaHosting, установите на нем CentOS 8 и следуйте инструкциям, приведённым ниже.
Конфигурация сервера SMTP Postfix исключительно для отправки почты для нескольких доменов не представляет собой большой сложности. В начале мы настроим его для одного домена, а затем перейдем к настройкам для нескольких.
Настройте имя хоста и запись PTR.
Postfix по умолчанию идентифицирует себя перед другими SMTP-серверами с помощью имени хоста вашего сервера. Если имя хоста окажется недействительным, некоторые SMTP-серверы могут отказать в доставке вашего письма. Поэтому необходимо задать полное квалифицированное доменное имя (FQDN), следуя приведённым ниже инструкциям.
sudo hostnamectl set-hostname mta1.yourdomain.com
Для того чтобы узнать имя хоста вашего сервера, выполните следующие действия:
hostname - f
Чтобы увидеть обновлённое имя хоста в командной строке, вам необходимо выйти из системы и снова войти. Это имя хоста должно иметь запись DNS типа A, направленную на IP-адрес вашего сервера.
Также необходимо настроить PTR-запись, известную как указатель.
Параметр $myorigin определяет доменное имя по умолчанию, которое прикрепляется к адресам отправителей и получателей, не содержащим часть @domain. Значение $myhostname используется по умолчанию, что можно проверить с помощью:
postconf myorigin
myorigin = $myhostname
Вы можете установить его значение на yourdomain.com.
sudo postconf - e "myorigin = yourdomain.com"
Перезапуск сервиса Postfix
В конечном итоге необходимо перезапустить Postfix, чтобы новые настройки начали действовать.
sudo systemctl restart postfix
Установка и конфигурация OpenDKIM на CentOS 8.
DKIM, или DomainKeys Identified Mail, представляет собой механизм для проверки подлинности электронной почты. Вы можете установить OpenDKIM на своем сервере, чтобы добавлять подписи к письмам, отправляемым с вашего домена, используя ваш закрытый ключ. Получающие SMTP-серверы проверяют эту подпись с помощью открытого ключа, который вы размещаете в DNS. Подписание писем с помощью DKIM необходимо, если вы хотите, чтобы ваши сообщения доходили до папки «Входящие» у получателя.
Установите OpenDKIM из репозитория EPEL (Extra Packages for Enterprise Linux).
sudo dnf install epel-release sudo dnf install opendkim perl-Getopt-Long
Измените основной файл конфигурации OpenDKIM.
sudo nano /etc/opendkim.conf
Определите следующий ряд.
Mode v
OpenDKIM по умолчанию функционирует в режиме проверки (v), что позволяет ему анализировать подписи DKIM входящих писем. Однако нам необходимо настроить подпись для исходящих сообщений электронной почты.
DKIM применяется для подписи отправляемых писем и проверки получаемых. Для этого нужно создать закрытый ключ, который будет использоваться для подписи исходящих сообщений, и открытый ключ, который потребуется SMTP-серверам для проверки DKIM-подписи. Открытый ключ будет размещен в DNS.
Сформируйте отдельную директорию для домена.
sudo mkdir /etc/opendkim/keys/ваш-домен.com
Создайте ключи, воспользовавшись утилитой opendkim-genkey.
sudo opendkim-genkey - b 2048 - d ваш-домен.com-Удалить каталог /etc/opendkim/keys/ваш-домен.com - s mta1 - v
Указанная команда сгенерирует ключи длиной 2048 бит. Параметр — d обозначает домен, а — D указывает на каталог для сохранения ключей. В качестве селектора DKIM используется mta1. После выполнения команды закрытый ключ сохранится в файл mta1.private, а открытый — в файл mta1.txt.
По умолчанию только пользователь root имеет доступ для чтения и записи ключевых файлов. Назначьте владельцем закрытого ключа пользователя opendkim.
sudo chown opendkim:opendkim /etc/opendkim/keys/ - R
Разместите свой открытый ключ в записях DNS.
Покажите публичный ключ.
sudo cat /etc/opendkim/keys/ваш-домен.com/mta1.txt
Строка, следующая за параметром p, представляет собой открытый ключ.
В вашем DNS-менеджере добавьте TXT-запись с именем mta1._domainkey. Затем в терминале скопируйте содержимое в скобках и вставьте в поле значения этой записи. Не забудьте удалить все двойные кавычки и переносы строк, иначе проверка ключа на следующем этапе может завершиться неудачно.
Проверьте ключ DKIM.
Выполните следующую команду на вашем сервере CentOS 8, чтобы проверить работоспособность вашего ключа.
sudo opendkim-testkey - d ваш-домен.com - s mta1 - vvv
Если все хорошо, на экране появится сообщение о том, что ключ в порядке.
opendkim-testkey: using default configfile /etc/opendkim.conf opendkim-testkey: checking key 'mta1._domainkey. linux16.ru' opendkim-testkey: key OK
Если вы заметите сообщение «Ключ не защищен», не волнуйтесь. Это связано с тем, что для вашего доменного имени не активирован DNSSEC. DNSSEC представляет собой стандарт безопасности, предназначенный для защиты DNS-запросов. У большинства доменных имен DNSSEC не активен. Вы можете продолжать следовать этому руководству.
Теперь у нас есть возможность активировать службу opendkim.
sudo systemctl start opendkim
Активировать автозапуск при загрузке системы.
sudo systemctl enable opendkim
OpenDKIM работает на адресе 127.0.0.1 с портом 8891.
Интегрируйте Postfix с OpenDKIM.
Внесите изменения в основной конфигурационный файл Postfix.
sudo nano /etc/postfix/main.cf
Вставьте указанные строки в конец данного файла, чтобы Postfix мог взаимодействовать с OpenDKIM через milter. Имейте в виду, что необходимо использовать 127.0.0.1 в качестве адреса, а не localhost.
# Конфигурация Milter milter_default_action = accept milter_protocol = 6 smtpd_milters = inet:127.0.0.1:8891 non_smtpd_milters = $smtpd_milters
Сохраните файл и закройте его. После этого добавьте пользователя postfix в группу opendkim.
sudo gpasswd - a postfix opendkim
Перезапустите службу Postfix.
sudo systemctl restart postfix
Добавьте запись SPF в систему DNS.
Запись SPF (Sender Policy Framework) определяет, какие хосты или IP-адреса могут отправлять письма от имени вашего домена. В интерфейсе управления DNS добавьте новую TXT-запись, следуя приведенным инструкциям. Обязательно укажите свой IPv4-адрес и IPv6-адрес сервера.
TXT @ v=spf1 mx ip4:12.34.56.78 ip6:2600:3c01::f03c:93d8:f2c6:78ad ~all
Задайте адрес отправителя, его имя и путь для возврата.
На своем веб-сайте или веб-приложении можно задать собственный адрес отправителя, имя и обратный путь. Рассмотрим пример с WordPress. Для этого нужно добавить несколько строк кода в файл functions.php вашей темы WordPress, чтобы изменить стандартные параметры адреса отправителя, имени и пути возврата. Не забудьте заменить выделенные значения на необходимые вам.
// Функция для изменения адреса электронной почты отправителя function wpb_sender_email( $original_email_address ) < return 'К сожалению, я не могу выполнить этот запрос.'; >Функция для редактирования имени отправителя function wpb_sender_name( $original_email_from )< return 'LinuxBabe'; >Чтобы установить путь возврата таким же, как и адрес отправителя, используйте следующую функцию:




