Часть 2: Настройка IMAP-сервера Dovecot на Ubuntu и активация шифрования TLS

Это вторая часть руководства по разработке собственного безопасного почтового сервера на Ubuntu с нуля. В первой части мы рассмотрели настройку базового SMTP-сервера Postfix. В данном руководстве мы будем настраивать почтовый сервер для возможности отправки и получения электронных писем через настольные почтовые клиенты, такие как Mozilla Thunderbird или Microsoft Outlook.

Для того чтобы использовать настольный почтовый клиент для отправки электронных писем, необходимо активировать службу отправки в Postfix. Для получения писем с помощью этого клиента можно установить открытый IMAP-сервер Dovecot на Ubuntu. Для обеспечения безопасности связи потребуется сертификат TLS.

Содержание статьи

Настройка доступа к портам в брандмауэре.

По умолчанию в Ubuntu брандмауэр не активирован. Если вы активировали UFW, следует выполнить команду для открытия портов, необходимых для работы электронной почты.

sudo ufw allow 80,443,587,465,143,993/tcp

Если вы получаете электронные письма с помощью протокола POP3 (я сам его не применяю), то необходимо открыть порты 110 и 995.

sudo ufw allow 110,995/tcp

Обеспечение безопасности трафика почтового сервера с использованием сертификата TLS.

При настройке настольных почтовых клиентов рекомендуется активировать шифрование TLS, чтобы защитить наши письма от возможных угроз. Бесплатный сертификат TLS можно легко получить через Let’s Encrypt. Для установки клиента Let’s Encrypt (certbot) на сервер Ubuntu из стандартного программного репозитория выполните следующие команды.

sudo apt update sudo apt dist-upgrade sudo apt install certbot

Если у вас еще нет функционирующего веб-сервера, настоятельно советую установить один из них (например, Apache или Nginx). Это упростит процесс получения и установки сертификата TLS по сравнению с другими методами. В следующем руководстве я расскажу, как настроить веб-почту, для чего необходим активный веб-сервер.

Если на вашем компьютере уже не установлен веб-сервер Apache, вам необходимо установить соответствующий плагин. Для этого выполните следующую команду.

sudo apt install python3-certbot-apache

Если ваш выбор пал на веб-сервер Nginx, установите соответствующий плагин. (Используйте следующую команду для установки веб-сервера Nginx, если он еще не присутствует в вашей системе.)

sudo apt install python3-certbot-nginx

Получение сертификата TLS через веб-сервер Apache.

Для получения TLS-сертификата от Let’s Encrypt необходимо настроить виртуальный хост Apache для mail.your-domain.com. Начните с создания файла виртуального хоста:

sudo nano /etc/apache2/sites-available/mail.your-domain.com.conf

После этого поместите следующий текст в файл.

ServerName mail.your-domain.comКорневой каталог документа: /var/www/html/

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

sudo a2ensite

Если у вас возникли трудности с получением TLS-сертификата, ознакомьтесь с данной статьей, чтобы узнать, как решить проблему.

  • Как устранить распространенные проблемы с Let’s Encrypt/Certbot

Получение 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; }

Сохраните изменения и закройте файл. Проверьте наличие каталога /usr/share/nginx/html/ на вашем сервере.

sudo mkdir - p /usr/share/nginx/html/

Обновите Nginx, чтобы изменения начали действовать.

sudo systemctl reload nginx

Когда виртуальный хост установлен и активирован, выполните следующую команду для получения сертификата Let’s Encrypt с использованием плагина Nginx.

sudo certbot certonly - a nginx --agree-tos --no-eff-email --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d mail.your-domain.com

  • -a nginx: Применяйте плагин Nginx для проведения аутентификации.
  • --согласие: Примите условия обслуживания.
  • --no-eff-email : Отказаться от получения писем от фонда EFF.
  • --staple-ocsp : Активирует OCSP Stapling. Ответ OCSP, который считается действительным, прикрепляется к сертификату, который сервер предоставляет в процессе TLS.
  • --email: Пожалуйста, укажите свой адрес электронной почты, который будет использоваться для получения важных уведомлений и восстановления доступа к аккаунту.
  • -d : это доменное имя, то есть название хоста вашего почтового сервера.

Необходимо обратить внимание на следующее: это указывает на то, что сертификат был успешно получен. Также у вас будет возможность просмотреть каталог, где находится ваш сертификат.

dovecot-tls-letsencrypt-certbot

Если вы столкнулись с трудностями при получении TLS сертификата, пожалуйста, ознакомьтесь с данной статьей для получения рекомендаций по устранению проблем.

  • Как устранить часто встречающиеся ошибки Let’s Encrypt/Certbot.

Активируйте службу отправки в 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 шифрования. Это позволит нашему почтовому клиенту на десктопе подключаться к демону отправки через безопасный протокол. Демон слушает на TCP порту 587, а для шифрования данных между почтовым клиентом и демоном используется механизм STARTTLS.

Клиент Microsoft Outlook позволяет отправку сообщений исключительно через порт 465. Если вы планируете использовать Outlook, необходимо активировать службу отправки на этом порту, добавив определенные строки в файл.

smtps inet n - y - - smtpd - o syslog_name=postfix/smtps - o smtpd_tls_wrappermode=yes - 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.

Сохраните файл и завершите его редактирование.

Протокол SMTP применяется, когда почтовый клиент передает сообщения на SMTP-сервер.

Теперь необходимо указать путь к TLS-сертификату и закрытому ключу в конфигурации Postfix. Для этого откройте и измените файл main.cf.

sudo nano /etc/postfix/main.cf

Настройте параметр TLS таким образом. Учтите, что необходимо заменить mail.your-domain.com на актуальное имя вашего хоста.

#Включить TLS-шифрование, когда Postfix принимает входящие письма smtpd_tls_cert_file=/etc/letsencrypt/live/mail.your-domain.com/fullchain. pem smtpd_tls_key_file=/etc/letsencrypt/live/mail.your-domain.com/privkey. pem smtpd_tls_security_level=may smtpd_tls_loglevel = 1 smtpd_tls_session_cache_database = btree:$/smtpd_scache #Включить TLS-шифрование, когда Postfix отправляет исходящие письма smtp_tls_security_level = may smtp_tls_loglevel = 1 smtp_tls_session_cache_database = btree:$/smtp_scache #Принудительно использовать 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

Сертификат Let's Encrypt и его закрытый ключ располагаются в папке /etc/letsencrypt/live/mail.your-domain.com/.

параметры tls для postfix

Сохраните изменения в файле и закройте его. После этого перезапустите Postfix.

sudo systemctl restart postfix

При выполнении следующей команды вы сможете заметить, что Postfix теперь активен на портах 587 и 465.

sudo ss - lnpt | grep master

Настройка IMAP-сервера Dovecot

Для установки основного пакета Dovecot и IMAP-демона на сервер Ubuntu введите следующую команду.

sudo apt install dovecot-core dovecot-imapd

Если вы получаете письма через POP3, обязательно установите пакет dovecot-pop3d.

sudo apt install dovecot-pop3d

Убедитесь в актуальности версии Dovecot:

dovecot --version

2.3.16 (7e2e900c1a)

Активация протоколов IMAP и POP3

Измените главный файл настроек.

sudo nano /etc/dovecot/dovecot.conf

Вставьте следующую строку для активации протокола IMAP.

protocols = imap

Если вы получаете письма с помощью POP3, не забудьте включить и сам протокол POP3.

protocols = imap pop3

Сохраните файл и завершите его редактирование.

Конфигурация расположения почтового ящика

Postfix и Dovecot по умолчанию хранят электронные письма в формате 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

Настройки по умолчанию предполагают использование формата mbox для электронной почты.

mail_location = mbox:~/mail:INBOX=/var/mail/%u

Настройте Dovecot на использование формата Maildir, чтобы электронные письма сохранялись в каталории Maildir в домашней папке каждого пользователя.

mail_location = maildir:~/Maildir

Следует внести новую строку в файл. (Эта строка уже имеется в файле на Ubuntu 18.04 и 20.04.)

mail_privileged_group = mail

Сохраните файл и закройте его. После этого добавьте Dovecot в группу mail, чтобы он имел доступ к чтению INBOX.

sudo adduser dovecot mail

Применение Dovecot для хранения и управления электронной почтой.

Несмотря на то что мы настроили Dovecot для работы с письмами в формате Maildir, Postfix по умолчанию применяет встроенный агент локальной доставки (LDA) для перемещения входящих писем в папки (входящие, отправленные, корзина, спам и т. д.), и они будут сохраняться в формате mbox.

Необходимо сконфигурировать Postfix для отправки входящих писем в Dovecot через LMTP — упрощенную версию SMTP. Это обеспечит сохранение писем в формате Maildir с помощью Dovecot. LMTP гарантирует надежность и масштабируемость почтовой системы, а также поддерживает плагин sieve для фильтрации писем по различным папкам.

Настройте сервер Dovecot для использования LMTP.

sudo apt install dovecot-lmtpd

Измените главный файл настройки Dovecot.

sudo nano /etc/dovecot/dovecot.conf

Включите lmtp в список поддерживаемых протоколов.

protocols = imap lmtp

Сохраните файл и закройте его. После этого внесите изменения в файл 10-master.conf для Dovecot.

sudo nano /etc/dovecot/conf.d/10-master.conf

Измените описание службы lmtp на следующее.

service lmtp unix_listener /var/spool/postfix/private/dovecot-lmtp mode = 0600 user = postfix group = postfix > >

dovecot lmtp на Ubuntu

Затем внесите изменения в главный конфигурационный файл 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

Замените ssl = yes на ssl = required, чтобы активировать обязательное шифрование.

ssl = required

После этого отыщите следующие строки.

ssl_cert =

По умолчанию Dovecot применяет самоподписанный сертификат TLS. Замените его на значения, которые указывают путь к вашему сертификату Let’s Encrypt и приватному ключу. Не забудьте сохранить символ , так как он необходим.

ssl_cert = mail.your-domain.com/fullchain. pem ssl_key = mail.your-domain.com/privkey. pem

Найдите следующий ряд.

#ssl_prefer_server_ciphers = no

Рекомендуется использовать порядок шифров сервера вместо порядка шифров клиента. Поэтому раскомментируйте данную строку и установите значение на yes.

ssl_prefer_server_ciphers = yes

Для пользователей Ubuntu 20.04 и 22.04 рекомендуется отключить небезопасные протоколы SSLv3, TLSv1 и TLSv1.1, вставив следующую строку.

ssl_min_protocol = TLSv1.2

Если у вас установлена версия Dovecot 2.2.x (например, на Ubuntu 18.04), включите следующую строку, чтобы запретить использование небезопасных версий TLS.

ssl_protocols =!SSLv3!TLSv1!TLSv1.1

Сохраните файл и завершите его редактирование.

Отключение FIPS-провайдеров в OpenSSL на Ubuntu 22.04.

Ubuntu 22.04 поставляется с OpenSSL версии 3.0, в которой реализована поддержка FIPS. Однако данная функция не совместима с Dovecot. Поэтому необходимо отключить FIPS-провайдер.

sudo nano /etc/ssl/openssl. cnf

Определите следующую строку (строка 54).

providers = provider_sect

Для комментирования этой строки добавьте символ #.

#providers = provider_sect

Сохраните файл и завершите его редактирование.

Если не деактивировать провайдер FIPS в OpenSSL, Dovecot будет генерировать следующую ошибку.

imap-login: Ошибка: Не удалось инициализировать контекст SSL сервера: Не удается загрузить SSL сертификат: ошибка:25066067:DSO support routines:dlfcn_load:не удалось загрузить общую библиотеку: файл(libproviders. so)

Конфигурация аутентификации с использованием SASL.

Пожалуйста, внесите изменения в данный файл.

sudo nano /etc/dovecot/conf.d/10-master.conf

Пожалуйста, внесите изменения в раздел аутентификации сервиса, чтобы Postfix смог корректно обнаружить сервер аутентификации Dovecot. Обратите внимание на правильность синтаксиса: каждая открывающая скобка должна соответствовать своей закрывающей.

service auth < unix_listener /var/spool/postfix/private/auth < mode = 0660 user = postfix group = postfix >>

Настройка аутентификации SMTP в Postfix на Ubuntu

Сохраните файл и завершите его редактирование.

Автоматическое формирование папок «Отправленные» и «Корзина».

Внесите изменения в указанный конфигурационный файл.

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. Перейдите в Редактировать -> Настройки учетной записи -> Действия с учетной записью ->Создайте учетную запись электронной почты для добавления почтового аккаунта.

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

Установка и настройка Postfix и Dovecot на Ubuntu с использованием Let's Encrypt.

Совет 1: Для IMAP вы можете воспользоваться портом 993 с включенным шифрованием SSL/TLS, а для SMTP - портом 465 с тем же шифрованием. Не рекомендуется использовать порт 25 в качестве SMTP порта для отправки исходящих писем в почтовых клиентах.

Совет 2: Если вы пользуетесь почтовым клиентом Microsoft 365 Outlook, вам не следует активировать Secure Password Authentication (SPA), так как это собственный протокол Microsoft. Ваш пароль уже защищён с помощью TLS.

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

Мы применяем локальные учетные записи Unix в качестве адресов электронной почты, как это было описано в первой части. К примеру, если на вашем сервере Ubuntu есть пользователь с именем user1, его почтовый адрес будет: [email protected] При этом пароль для данного почтового ящика совпадает с паролем пользователя user1. Для создания локальной учетной записи Unix используйте команду.

sudo adduser user1

Обратите внимание: Dovecot не предоставляет возможность входа с учетной записью root. Необходимо создать отдельные учетные записи для пользователей.

Чтобы получить перечень всех доступных почтовых пользователей, используйте следующую команду:

sudo doveadm user '*'

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

sudo systemctl restart dovecot

Рекомендации по диагностике и исправлению проблем

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

Не получается зайти в почтовые клиенты.

Если у вас возникли трудности с доступом к почтовому серверу через десктопный почтовый клиент, выполните сканирование вашего почтового сервера, чтобы проверить, открыты ли порты (TCP 587, 465, 143 и 993). Имейте в виду, что команду следует выполнять с другого компьютера или сервера на базе Linux. При выполнении этой команды на самом почтовом сервере порты всегда будут выглядеть открытыми.

sudo nmap mail.your-domain.com

Убедитесь, что Dovecot работает.

systemctl status dovecot

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

sudo journalctl - eu dovecot

К примеру, у некоторых пользователей может появиться следующая запись об ошибке в журнале.

doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-master.conf line 78: Unknown setting

Наиболее распространенной причиной является элементарная синтаксическая ошибка, например, отсутствие фигурной скобки. Откройте файл настроек, перейдите к указанной строке и внесите коррективы.

Если в почтовом журнале появилось следующее сообщение об ошибке

imap-login: Error: Failed to initialize SSL server context: Can't load DH parameters: error:1408518A:SSL routines:ssl3_ctx_ctrl:dh key too small

Затем откройте файл настройки TLS для Dovecot.

sudo nano /etc/dovecot/conf.d/10-ssl.conf

Включите в этот файл следующую строку.

ssl_dh = /etc/dovecot/dh. pem

Сохраните и закройте документ. После этого создайте файл с параметрами DH, используя:

sudo openssl dhparam - out /etc/dovecot/dh. pem 4096

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

DNS от Cloudflare

Как упоминалось в первой части, если вы пользуетесь услугами DNS от Cloudflare, рекомендуется не активировать функцию CDN (прокси) при добавлении записей DNS A и AAAA для вашего почтового сервера. Cloudflare не обеспечивает проксирование для SMTP или IMAP.

Запрет на отправку сообщений.

Если при попытке отправить электронные письма из почтового клиента возникает ошибка «relay access denied», вероятнее всего, вы используете порт 25 для SMTP. Рекомендуется использовать порты 587 или 465 для отправки исходящих сообщений в почтовых клиентах, таких как Mozilla Thunderbird или Microsoft Outlook. Порт 25 предназначен для связи между SMTP-серверами.

Если при попытке отправки писем с других почтовых сервисов, например Gmail, на ваш почтовый сервер вы сталкиваетесь с ошибкой «relay access denied» в файле /var/log/mail.log, это может означать, что ваш домен (вашdomain.com) не включён в параметр $mydestination.

NOQUEUE: reject: RCPT from mail-il1-f180.google.com[209.85.166.180]: 454 4.7.1 [email protected]>: Relay access denied; from=[email protected]> to=[email protected]>протокол=ESMTP приветствие=<

Вы можете получить текущее значение $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/mail.log) отображается следующее сообщение об ошибке, возможно, вы не указали 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))

Приложение Mail для iOS

Если вы входите на свой почтовый сервер через приложение Почта для iOS и сталкиваетесь с этой ошибкой.

Сервер почты iOS не отвечает.

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

iOS почта требует использования шифрования SSL.

Удивительное наблюдение: Приложение Почта на iOS, похоже, испытывает трудности с использованием STARTTLS на IMAP-порту 143, хотя поддерживает эту функцию на порту отправки 587.

Если в приложении Почта для iOS вы видите сообщение об ошибке «Пароль не предоставлен», это может означать, что вы сделали ошибку при вводе имени пользователя в настройках своего почтового аккаунта или не активировали SSL в его настройках.

iOS почта: пароль не указан.

Невозможно получить сообщение от Gmail, Hotmail, Yahoo Mail и других почтовых сервисов.

Если вы не получаете сообщения от Gmail, Hotmail, Yahoo Mail и других почтовых сервисов, возможны следующие причины:

  1. Ваша MX-запись некорректна или еще не обновлена в сети.
  2. Имя хоста вашего почтового сервера отсутствует в DNS A-записи или его распространение в Интернете еще не завершено.
  3. Ваш брандмауэр блокирует входящие соединения на 25-й порт. Может быть, ваш почтовый сервер находится за NAT?
  4. Postfix не принимает соединения на общедоступном IP-адресе.
  5. Осмотрите файл журнала почты (/var/log/mail.log), чтобы определить, имеются ли другие ошибки в настройках Postfix и Dovecot.

Вам доступен инструмент Email Checker в разделе Сетевые инструменты для проверки доступности вашего SMTP-сервера в Интернете. Для этого достаточно ввести адрес электронной почты вашего домена и нажать кнопку «Go». На приведенном ниже скриншоте видно, что инструмент успешно обнаружил MX-запись моего домена, что подтверждает доступность моего SMTP-сервера из Интернета.

проверка электронной почты

Если ваши SMTP-серверы не доступны из Интернета, это указывает на проблемы с первыми четырьмя пунктами. Если же ваш SMTP-сервер доступен, но вы все равно не можете получать письма, проверьте журналы почты (/var/log/mail.log), чтобы определить, присутствуют ли ошибки в настройках Postfix и Dovecot.

Автоматическое обновление сертификата TLS

Можно настроить задачу Cron для автоматического обновления TLS-сертификата. Для этого необходимо открыть файл crontab для пользователя root.

sudo crontab - e

Если вы работаете с веб-сервером Apache, вставьте эту строку в нижнюю часть файла.

@daily certbot renew --quiet && systemctl reload postfix dovecot apache2

Если вы работаете с веб-сервером 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

Далее следует шаг.

Надеюсь, что данная статья была полезной для настройки Postfix и Dovecot на вашем сервере Ubuntu. В третьей части я расскажу, как можно создать виртуальные почтовые ящики.

Если вы хотите работать с сервером баз данных MariaDB/MySQL, воспользуйтесь этим руководством по PostfixAdmin.