Это вторая часть руководства по созданию почтового сервера с нуля на CentOS 8/RHEL 8. В первой части мы рассмотрели настройку базового SMTP-сервера с помощью Postfix. В этом материале мы займёмся дальнейшей настройкой сервера, чтобы обеспечить возможность отправки и получения писем через почтовые клиенты, такие как Mozilla Thunderbird или Microsoft Outlook.
Для отправки электронных писем через настольный почтовый клиент необходимо активировать службу отправки в Postfix. Для получения сообщений с использованием настольного почтового клиента можно установить сервер IMAP с открытым исходным кодом Dovecot на сервер CentOS 8/RHEL 8. Для защиты связи потребуется сертификат TLS.
Содержание статьи
- 1 Настройка доступа через порты в файрволе.
- 2 Обеспечение безопасности трафика почтового сервера с использованием TLS-сертификата.
- 3 Получение TLS-сертификата для веб-сервера Apache.
- 4 Получение TLS-сертификата для веб-сервера Nginx.
- 5 Активирование функции отправки в Postfix
- 6 Настройка IMAP-сервера Dovecot
- 7 Конфигурация Dovecot
- 8 Конфигурация местоположения почтового ящика
- 9 Применение Doveco Сохраните изменения и закройте файл. Затем внесите правки в главный конфигурационный файл Postfix. sudo nano /etc/postfix/main.cf В конец файла необходимо добавить следующие строки. Первая строка указывает Postfix направлять электронные письма в локальное хранилище через сервер Dovecot с использованием протокола LMTP. Вторая строка отключает поддержку SMTPUTF8 в Postfix, так как Dovecot-LMTP не работает с этим расширением электронной почты. mailbox_transport = lmtp:unix:private/dovecot-lmtp smtputf8_enable = no Сохраните изменения и завершите работу с файлом. Конфигурация системы аутентификации
- 10 Конфигурация шифрования SSL/TLS
- 11 Аутентификация SASL между Postfix и Dovecot.
- 12 Автоматическое формирование папок "Отправленные" и "Корзина".
- 13 Конфигурация почтового клиента на компьютере.
- 14 Рекомендации по решению проблем
- 15 Автоматизированное обновление сертификата TLS
- 16 Автоматическая перезагрузка сервиса Dovecot.
Настройка доступа через порты в файрволе.
Запустите следующую команду для открытия портов, используемых для электронной почты, в настройках брандмауэра.
Введите следующую команду для добавления сервиса в постоянные правила брандмауэра:
sudo firewall-cmd --permanent --add-service=
Если вы пользуетесь POP3 для получения электронной почты (я сам его не использую), то не забудьте также добавить службы pop3 и pop3s.
Введите следующую команду для добавления сервиса в постоянные правила брандмауэра:
sudo firewall-cmd --permanent --add-service=
Перезапустите firewalld для применения изменений.
sudo systemctl reload firewalld
Обеспечение безопасности трафика почтового сервера с использованием TLS-сертификата.
При настройке настольного почтового клиента активация шифрования — это всегда полезная мера. Мы можем без труда получить бесплатный TLS-сертификат от Let’s Encrypt. Для установки клиента Let’s Encrypt (certbot) из репозитория EPEL выполните следующие команды.
sudo dnf install epel-release - y sudo dnf install certbot
sudo dnf install https://dl. fedoraproject. org/pub/epel/epel-release-latest-8.noarch. rpm sudo dnf install certbot
Если у вас еще нет активного веб-сервера, настоятельно рекомендую установить один из вариантов (Apache или Nginx), так как получить и установить сертификат TLS будет проще именно с веб-сервером, чем другими способами. В следующем руководстве я объясню, как настроить веб-почту, для которой необходима работа веб-сервера.
Учтите, что на вашем сервере CentOS 8/RHEL 8 может быть предустановлен веб-сервер Apache.
Apache
Если вы выбираете Apache, используйте следующую команду для его установки.
sudo dnf install httpd
Запустите Apache и настройте его на автоматический запуск при старте системы.
sudo systemctl start httpd sudo systemctl enable httpd
Установите плагин Certbot для веб-сервера Apache.
sudo dnf install python3-certbot-apache
Nginx
Если вы являетесь сторонником Nginx, воспользуйтесь следующей командой для его установки.
sudo dnf install nginx
Запустите Nginx и настройте его на автоматический старт при загрузке системы.
sudo systemctl start nginx sudo systemctl enable nginx
Установите плагин Certbot для веб-сервера Nginx.
sudo dnf install python3-certbot-nginx
Получение TLS-сертификата для веб-сервера Apache.
Для получения TLS сертификата от Let’s Encrypt необходимо сначала настроить виртуальный хост для mail.your-domain.com. Начните с создания файла виртуального хоста:
sudo nano /etc/httpd/conf.d/mail.your-domain.com.conf
Затем добавьте следующий текст в документ.
Сохраните файл и закройте его. Затем перезапустите Apache, чтобы изменения начали действовать.
sudo systemctl reload httpd
После настройки и активации виртуального хоста выполните следующую команду для получения TLS-сертификата от Let’s Encrypt.
sudo certbot certonly - a apache --agree-tos --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d mail.your-domain.com
Спустя некоторое время на экране должны появиться следующие строки, указывающие на то, что сертификат был успешно выдан. Вы также сможете увидеть папку, где размещен ваш сертификат.

Получение TLS-сертификата для веб-сервера Nginx.
Прежде чем получить сертификат TLS от Let’s Encrypt, необходимо настроить виртуальный хост для mail.your-domain.com. Создайте файл для этого виртуального хоста:
sudo nano /etc/nginx/conf.d/mail.your-domain.com.conf
Затем поместите следующий текст в документ.
server { listen 80; listen [::]:80; server_name mail.your-domain.comкорень /usr/share/nginx/html/; местоположение~ /.well-known/acme-challenge { allow all; }
Сохраните файл и закройте его. Затем перезапустите Nginx, чтобы изменения были применены.
sudo systemctl reload nginx
После настройки и активации виртуального хоста введите следующую команду для получения сертификата Let’s Encrypt с использованием плагина Nginx.
sudo certbot certonly - a nginx --agree-tos --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d mail.your-domain.com
Вскоре вы получите следующее уведомление, которое подтвердит успешное получение сертификата. Кроме того, будет доступен каталог, где находится ваш сертификат.

Активирование функции отправки в Postfix
Для отправки электронных писем из клиентского приложения на компьютере необходимо активировать службу отправки Postfix, что позволит почтовому клиенту пересылать сообщения на SMTP-сервер Postfix. Не забудьте отредактировать файл master.cf.
sudo nano /etc/postfix/master.cf
В разделе отправки необходимо раскомментировать или добавить указанные ниже строки. Убедитесь, что перед каждым — o имеется хотя бы один пробел (это может быть табуляция или пробел). В конфигурациях Postfix наличие пробела в начале строки указывает на то, что она является продолжением предыдущей. (Раздел отправки по умолчанию закомментирован. Вы можете скопировать предложенные строки и вставить их в файл, чтобы избежать необходимости вручную раскомментировать или добавлять новый текст.)
submission inet n - y - - smtpd - o syslog_name=postfix/submission - o smtpd_tls_security_level=encrypt - o smtpd_tls_wrappermode=no - o smtpd_sasl_auth_enable=yes - o smtpd_relay_restrictions=permit_sasl_authenticated, reject - o smtpd_recipient_restrictions=permit_mynetworks, permit_sasl_authenticated, reject - o smtpd_sasl_type=dovecot - o smtpd_sasl_path=private/auth
Данная конфигурация включает почтовый сервер Postfix и требует использования TLS для шифрования. Это позволит в дальнейшем подключить почтовый клиент на компьютере к серверу с использованием TLS. Сервер отправки принимает подключения через TCP-порт 587. Для шифрования взаимодействия между клиентом и сервером применяется протокол STARTTLS.
Microsoft Outlook поддерживает отправку сообщений исключительно через порт 465. Если вы планируете использовать этот почтовый клиент, необходимо активировать службу отправки на порту 465, добавив соответствующие строки в конфигурационный файл.
smtps inet n - y - - smtpd - o syslog_name=postfix/smtps - o smtpd_tls_wrappermode=yes - o

Сохраните изменения и завершите работу с файлом.
Протокол SMTP применяется в случаях, когда почтовый клиент передает электронные сообщения на сервер SMTP.
Затем необходимо выполнить две команды для указания местоположения TLS сертификата и приватного ключа в конфигурационном файле Postfix. Ваш сертификат Let's Encrypt и закрытый ключ находятся в папке /etc/letsencrypt/live/mail.your-domain.com/.
sudo postconf "smtpd_tls_cert_file = /etc/letsencrypt/live/mail.your-domain.com/smtpd_tls_key_file = /etc/letsencrypt/live/fullchain. pem" выполните команду sudo postconf.mail.your-domain.com/privkey. pem"
Чтобы начать записывать TLS-соединения в файл журнала почты (/var/log/maillog), выполните следующие две команды.
sudo postconf "smtpd_tls_loglevel = 1" sudo postconf "smtp_tls_loglevel = 1"
Для отключения небезопасных версий SSL/TLS необходимо открыть главный конфигурационный файл Postfix.
sudo nano /etc/postfix/main.cf
Вставьте указанные строки в конец документа. (В текстовом редакторе Nano вы можете быстро добраться до конца файла, нажав Ctrl+W, а затем Ctrl+V.)
#Обязательные протоколы TLSv1.3 или TLSv1.2 smtpd_tls_mandatory_protocols =!SSLv2,!SSLv3,!TLSv1,!TLSv1.1 smtpd_tls_protocols =!SSLv2,!SSLv3,!TLSv1,!TLSv1.1 smtp_tls_mandatory_protocols =!SSLv2,!SSLv3,!TLSv1,!TLSv1.1 smtp_tls_protocols =!SSLv2,!SSLv3,!TLSv1,!TLSv1.1
Сохраните файл и закройте его. После этого перезапустите Postfix, чтобы изменения были применены.
sudo systemctl restart postfix
После выполнения следующей команды вы сможете убедиться, что Postfix теперь принимает подключения на портах 587 и 465.
sudo ss - lnpt | grep master

Настройка IMAP-сервера Dovecot
Для установки Dovecot на сервере CentOS 8/RHEL 8 введите следующую команду.
sudo dnf install dovecot - y
Убедитесь в актуальной версии Dovecot:
dovecot --version
2.3.8 (9df20d2db)
Запустите Dovecot и настройте его автоматический старт при загрузке системы.
sudo systemctl start dovecot sudo systemctl enable dovecot
Конфигурация Dovecot
Сначала внесите изменения в главный конфигурационный файл.
sudo nano /etc/dovecot/dovecot.conf
Определите следующую последовательность.
#protocols = imap pop3 lmtp submission
Замените данную строку на следующую, чтобы активировать протоколы IMAP и LMTP.
protocols = imap lmtp
Если вы планируете использовать POP3 для получения почты, не забудьте подключить этот протокол.
protocols = imap pop3 lmtp
Учтите, что не следует добавлять протокол submission в Dovecot, так как мы уже активировали службу submission в Postfix.
Сохраните изменения и завершите работу с файлом.
Конфигурация местоположения почтового ящика
Mbox представляет собой классический формат, который используется по умолчанию для хранения электронных писем. Письма каждого пользователя сохраняются в одном файле, расположенном по пути /var/mail/username. Для поиска директории почтового хранилища вы можете воспользоваться следующей командой.
postconf mail_spool_directory
mail_spool_directory = /var/mail
В современном мире предпочтительным форматом для хранения электронных писем становится Maildir. Файл конфигурации, отвечающий за местоположение почтового ящика, находится по адресу /etc/dovecot/conf.d/10-mail.conf.
sudo nano /etc/dovecot/conf.d/10-mail.conf
Включите следующую строку, чтобы активировать формат Maildir. Сообщения электронной почты будут сохраняться в папке Maildir в домашнем каталоге каждого пользователя.
mail_location = maildir:~/Maildir
Также нужно внести следующую строку в файл.
mail_privileged_group = mail
Сохраните и закройте документ. После этого включите dovecot в группу mail, чтобы Dovecot получил доступ к INBOX.
sudo gpasswd - a dovecot mail
Применение Doveco
Сохраните изменения и закройте файл. Затем внесите правки в главный конфигурационный файл Postfix.
sudo nano /etc/postfix/main.cf
В конец файла необходимо добавить следующие строки. Первая строка указывает Postfix направлять электронные письма в локальное хранилище через сервер Dovecot с использованием протокола LMTP. Вторая строка отключает поддержку SMTPUTF8 в Postfix, так как Dovecot-LMTP не работает с этим расширением электронной почты.
mailbox_transport = lmtp:unix:private/dovecot-lmtp smtputf8_enable = no
Сохраните изменения и завершите работу с файлом.
Конфигурация системы аутентификации
Измените конфигурационный файл для аутентификации.
sudo nano /etc/dovecot/conf.d/10-auth.conf
Найдите строку ниже и уберите символ # в начале, чтобы снять с нее комментарий.
#disable_plaintext_auth = yes
Это отключит передачу данных для аутентификации в открытом виде при отсутствии шифрования SSL/TLS. Далее найдите следующую строку,
#auth_username_format = %Lu
Уберите комментарий и измените значение на %n.
auth_username_format = %n
По умолчанию, Dovecot использует полный адрес электронной почты для поиска или доставки писем пользователю. Однако, так как на данном этапе мы настраиваем только канонических пользователей почтовых ящиков (используя учетные записи операционной системы), Dovecot не может идентифицировать пользователя по адресу в формате с доменом (например, [email protected]). Чтобы решить эту проблему, необходимо задать параметр auth_username_format = %n, который уберет доменную часть из адреса, и Dovecot сможет распознать пользователя. Это также позволит входить в систему с полным адресом электронной почты, таким как [email protected].
Затем отыщите следующую строку.
auth_mechanisms = plain
Данная строка активирует только механизм аутентификации PLAIN.logIN является другим методом аутентификации, который, возможно, стоит добавить для совместимости с устаревшими почтовыми клиентами.
auth_mechanisms = plain login
Сохраните изменения и завершите работу с файлом.
Конфигурация шифрования SSL/TLS
Теперь необходимо внести изменения в файл конфигурации SSL/TLS.
sudo nano /etc/dovecot/conf.d/10-ssl.conf
Вы можете обнаружить следующую строку, которая обязывает почтовые клиенты устанавливать соединение с Dovecot с использованием шифрования TLS.
ssl = required
После этого найдите следующие две строки.
ssl_cert =
Необходимо обновить значения на путь к вашему сертификату SSL/TLS и закрытому ключу. Не забудьте сохранить символ . Это крайне важно.
ssl_cert = mail.your-domain.com
/fullchain. pem ssl_key = mail.your-domain.com/privkey. pem
sudo nano /etc/postfix/main.cfmailbox_transport = lmtp:unix:private/dovecot-lmtp smtputf8_enable = nosudo nano /etc/dovecot/conf.d/10-auth.conf#disable_plaintext_auth = yes#auth_username_format = %Luauth_username_format = %nauth_mechanisms = plainauth_mechanisms = plain loginsudo nano /etc/dovecot/conf.d/10-ssl.confssl = requiredssl_cert =ssl_cert = mail.your-domain.comЗатем найдите следующую строку и уберите комментарий, удалив символ # в начале.
#ssl_dh =
Определите следующую последовательность.
#ssl_min_protocol = TLSv1
Данный текст говорит о минимальных версиях TLS, применяемых Dovecot. Поскольку TLSv1.0 и TLSv1.1 считаются небезопасными, рекомендуется раскомментировать эту строку и установить значение на TLSv1.2, что заставит Dovecot работать с TLSv1.2 или TLSv1.3.
ssl_min_protocol = TLSv1.2
После этого перейдите к следующей строке.
#ssl_prefer_server_ciphers = no
Рекомендуется устанавливать приоритет шифров сервера перед клиентскими, поэтому следует раскомментировать эту строку и задать значение yes.
ssl_prefer_server_ciphers = yes
Сохраните файл и закройте его. Теперь необходимо создать параметр Диффи-Хеллмана с помощью:
sudo openssl dhparam - out /etc/dovecot/dh. pem 4096
Если ваш почтовый сервер оснащен одним процессором, этот процесс займет много времени (около 10 минут). Если вы не готовы так долго ждать, вы можете создать параметры DH на своем локальном компьютере с операционной системой Linux, а затем перенести файл в каталог /etc/dovecot/ на почтовом сервере.
Аутентификация SASL между Postfix и Dovecot.
Пожалуйста, внесите изменения в указанный файл.
sudo nano /etc/dovecot/conf.d/10-master.conf
Обновите раздел аутентификации сервиса следующим образом, чтобы Postfix смог обнаружить сервер аутентификации Dovecot. Обратите внимание на правильность синтаксиса: каждая открывающая скобка должна иметь соответствующую закрывающую.
service auth < unix_listener /var/spool/postfix/private/auth < mode = 0600 user = postfix group = postfix >>

Сохраните изменения и завершите работу с файлом.
Автоматическое формирование папок "Отправленные" и "Корзина".
Измените указанный ниже файл конфигурации.
sudo nano /etc/dovecot/conf.d/15-mailboxes.conf
Для автоматического создания папки просто включите следующую строку в раздел с почтовыми ящиками.
auto = create
корзина почты
Вы можете создать несколько общих папок, таких как: Черновики, Спам, Корзина и Отправленные. Папка "Отправленные" появится в домашнем каталоге пользователя после отправки первого письма. Папка "Корзина" создастся после первого удаления письма и так далее. После того как вы сохраните и закроете все упомянутые конфигурационные файлы, перезапустите Postfix и Dovecot.
sudo systemctl restart postfix dovecot
Dovecot будет принимать подключения на порту 143 (IMAP) и 993 (IMAPS), что можно проверить с помощью:
sudo ss - lnpt | grep dovecot
В случае ошибки конфигурации Dovecot не будет в состоянии перезапуститься, поэтому стоит проверить его статус.
systemctl status dovecot
Конфигурация почтового клиента на компьютере.
Запустите ваш почтовый клиент на рабочем столе, например, Mozilla Thunderbird. Перейдите в Правка -> Настройки учетной записи -> Действия учетной записи ->Для добавления почтового аккаунта, следует добавить новый почтовый аккаунт. Если Thunderbird успешно обнаружит настройки вашего почтового сервера, как показано ниже, просто нажмите кнопку "Готово", и вы сможете просматривать и отправлять сообщения.

Если Thunderbird не смог автоматически обнаружить настройки вашего почтового сервера, нажмите на кнопку "Ручная настройка", чтобы ввести информацию о сервере вручную.
- В настройках входящего сервера укажите протокол IMAP, введите mail.your-domain.com как имя сервера, используйте порт 143 и настройте шифрование STARTTLS. В качестве метода аутентификации выберите опцию обычного пароля.
- В разделе исходящей почты выберите протокол SMTP, укажите mail.your-domain.com в качестве имени сервера, установите порт 587 и используйте STARTTLS. В качестве метода аутентификации выберите обычный пароль.

Вы можете воспользоваться портом 993 с SSL/TLS для IMAP и портом 465 с SSL/TLS для SMTP. Не рекомендуется использовать порт 25 для отправки исходящих сообщений через SMTP.
Теперь вы можете подключиться к своему личному почтовому серверу и использовать почтовый клиент на компьютере для отправки и получения сообщений!
Для использования адресов электронной почты применяются локальные учетные записи Unix, как это было описано в первой части. Например, если на вашем сервере CentOS/RHEL существует пользователь с именем user1, то его почтовый адрес будет: [email protected], при этом пароль для почты совпадает с паролем пользователя user1. Для создания локальной учетной записи Unix выполните
sudo adduser user1
Далее задайте пароль для данного пользователя.
sudo passwd user1
Примечание: Dovecot не разрешает вход в систему под учетной записью root. Нужно создать отдельные учетные записи для пользователей.
Вы можете получить список всех доступных пользователей почтовых ящиков, используя:
sudo doveadm user '*'
После добавления новых пользователей рекомендуется перезагрузить Dovecot, чтобы он смог идентифицировать новые почтовые учетные записи.
sudo systemctl restart dovecot
Рекомендации по решению проблем
Обычно стоит проверять почтовый журнал (/var/log/maillog) на вашем почтовом сервере при возникновении ошибок. Вот перечень определённых ошибок.
Не получается авторизоваться через почтовые клиенты.
Если вы испытываете трудности с доступом к своему почтовому серверу через почтовый клиент на компьютере, убедитесь, что порты (TCP 587, 465, 143 и 993) на вашем почтовом сервере открыты. Учтите, что данную команду необходимо выполнить с другого компьютера или сервера под управлением Linux. При выполнении на самом почтовом сервере порты всегда будут отображаться как открытые.
sudo nmap mail.your-domain.com
Убедитесь, что Dovecot функционирует.
systemctl status dovecot
Вы можете также просмотреть журнал почты (/var/log/maillog), который может предоставить полезную информацию. Если Dovecot не запускается, ошибка может не отображаться в файле /var/log/maillog. В таком случае выполните следующую команду, чтобы выявить причину проблемы.
sudo journalctl - eu dovecot
Некоторые пользователи могут столкнуться с такой ошибкой в своем журнале.
doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-master.conf line 78: Unknown setting
Наиболее распространенной причиной является элементарная синтаксическая ошибка, например, забытая фигурная скобка. Откройте файл конфигурации, перейдите к указанной строке и внесите исправления.
DNS от Cloudflare
Как уже упоминалось в первой части, если вы пользуетесь услугами DNS от Cloudflare, не следует активировать функцию CDN (прокси) при создании DNS A и AAAA записей для вашего почтового сервера. Cloudflare не предоставляет прокси-сервисы для протоколов SMTP и IMAP.
Доступ к релейному сервису ограничен.
Если при попытке отправить письма из почтового клиента возникает ошибка "доступ к релейной службе запрещен", это может означать, что вы используете порт 25 в качестве SMTP-порта. Рекомендуется переключиться на порты 587 или 465 для отправки исходящих писем в почтовых клиентах, таких как Mozilla Thunderbird или Microsoft Outlook. Порт 25 предназначен исключительно для обмена между SMTP-серверами.
Если при отправке писем с других почтовых сервисов, таких как Gmail, на ваш почтовый сервер в файле /var/log/maillog появляется ошибка "доступ к релейной службе запрещен", вероятно, домен yourdomain.com не добавлен в список параметра $mydestination.
NOQUEUE: reject: RCPT from mail-il1-f180.google.com[209.85.166.180]: 454 4.7.1 [email protected]>: Доступ к релейной службе запрещен; from=[email protected]> to=[email protected]>proto=ESMTP, команда helo=
Текущее значение $mydestination можно отобразить следующим образом:
postconf mydestination
Некоторые пользователи могут обнаружить, что основное доменное имя отсутствует в их списке, например:
mydestination = $myhostname, localhost.$mydomain, localhost
Затем выполните следующую команду для добавления основного доменного имени в перечень.
sudo postconf - e "mydestination = yourdomain.com, \$myhostname, localhost.\$mydomain, localhost"
Чтобы изменения вступили в силу, перезапустите Postfix.
sudo systemctl reload postfix
Пользователь не найден.
Если в журнале почты (/var/log/maillog) отображается данное сообщение об ошибке, возможно, вы не установили параметр auth_username_format = %n в конфигурационном файле /etc/dovecot/conf.d/10-auth.conf.
mail postfix/lmtp[2256]: 68E00FC1A5: to=, relay=mail.example.com[private/dovecot-lmtp], delay=509, delays=509/0.03/0.03/0.02, dsn=5.1.1, status=bounced (host mail.example.com[private/dovecot-lmtp] said: 550 5.1.1 User doesn't exist: [email protected] (in reply to RCPT TO command))
Приложение Почта для iOS
Если вы заходите на свой почтовый сервер через приложение Mail на iOS и получаете следующую ошибку.

Попробуйте решить эту проблему, установив шифрование SSL для SMTP и IMAP.

Интересный факт: Похоже, что приложение Mail на iOS сталкивается с проблемами в работе STARTTLS на IMAP порту 143, однако успешно поддерживает STARTTLS на порту 587 для отправки сообщений.
Если вы увидели сообщение об ошибке “Пароль не предоставлен” в приложении Mail на iOS, возможно, вы допустили ошибку при вводе имени пользователя в настройках учетной записи Mail или не активировали SSL в этих же настройках.

Не удается получить адрес электронной почты от таких сервисов, как Gmail, Hotmail, Yahoo Mail и других.
Если у вас возникают проблемы с получением писем от Gmail, Hotmail, Yahoo Mail и других сервисов, возможные причины могут быть следующими:
- Ваши MX-записи либо некорректны, либо еще не обновлены в сети.
- У вашего почтового сервера отсутствует DNS A-запись или она еще не обновлена в Интернете.
- Ваш брандмауэр блокирует входящие подключения на 25-й порт. Возможно, ваш почтовый сервер расположен за NAT?
- Postfix не принимает подключения на публичном IP-адресе.
- Просмотрите журнал почты (/var/log/mail.log), чтобы выявить возможные ошибки в настройках Postfix и Dovecot.
Вы можете воспользоваться инструментом Network Tools Email Checker для проверки доступности вашего SMTP-сервера в Интернете. Просто введите адрес электронной почты вашего домена и нажмите кнопку "Перейти". Как показано на скриншоте ниже, он успешно обнаружил MX-запись моего домена, подтверждая доступность моего SMTP-сервера из сети.

Если ваши SMTP-серверы недоступны для Интернета, значит, у вас возникли сложности с первыми четырьмя пунктами. Если же ваш SMTP-сервер доступен, но вы по-прежнему не получаете электронные письма, просмотрите почтовый журнал (/var/log/mail.log), чтобы выявить возможные ошибки в настройках Postfix и Dovecot.
Автоматизированное обновление сертификата TLS
Для автоматического обновления TLS-сертификата вы можете настроить задачу Cron. Для этого откройте файл crontab от имени пользователя root.
sudo crontab - e
Если вы работаете с веб-сервером Apache, вставьте эту строку в конец файла.
@daily certbot renew --quiet && systemctl reload postfix dovecot httpd
Если вы применяете веб-сервер Nginx, включите следующую строку.
@daily certbot renew --quiet && systemctl reload postfix dovecot nginx
Необходима перезагрузка Postfix, Dovecot и веб-сервера для того, чтобы эти приложения смогли обновить сертификат и закрытый ключ.
Автоматическая перезагрузка сервиса Dovecot.
В случае, если ваш процесс Dovecot по какой-либо причине был остановлен, выполните следующую команду для его перезапуска.
sudo systemctl restart dovecot
Вместо ручного ввода этой команды, мы можем настроить автоматическую перезагрузку Dovecot, изменив файл юнита службы systemd dovecot.service. Для переопределения стандартной конфигурации службы systemd необходимо создать отдельный каталог.
sudo mkdir - p /etc/systemd/system/dovecot.service.d/
После этого создайте документ в данной папке.
sudo nano /etc/systemd/system/dovecot.service.d/restart.conf
Вставьте указанные строки в файл, чтобы Dovecot автоматически перезапускался через 5 секунд при выявлении сбоя.
[Service] Restart=always RestartSec=5s
Сохраните изменения в файле и закройте его. После этого выполните перезагрузку systemd.
sudo systemctl daemon-reload
Для того чтобы убедиться в этом, остановите процесс Dovecot с помощью:
sudo pkill dovecot
После этого проверьте состояние Dovecot. Вы увидите, что Dovecot перезапустился автоматически.
systemctl status dovecot

