Вопрос или проблема
Есть рабочий iRedMail с Postfix, отправляющий почту в Google, а также в Яндекс через ipv6, используя порт 25.
2025-01-01T22:13:34.633154+00:00 vps-93cd9763 postfix/smtp[10995]: Trusted TLS connection established to mx.yandex.ru[2a02:6b8::311]:25: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256
2025-01-01T22:13:35.653055+00:00 vps-93cd9763 postfix/smtp[10995]: 4YNkcs4G7Xz42Z4: to=<[email protected]>, relay=mx.yandex.ru[2a02:6b8::311]:25, delay=2.1, delays=0.02/0.08/1.1/0.88, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued on mail-nwsmtp-mxfront-production-main-86.sas.yp-c.yandex.net 1735769615-XDop8P6H7Gk0-JBGtnk8J)
Но, видимо, не все почтовые ящики предоставляют эту функциональность. Встретились упорные, которые этого не делают. Это Duck.com, Mail-tester.com и, конечно, существует больше таких.
Поэтому нужна альтернатива для использования порта 587:
2025-01-01T22:14:03.670081+00:00 vps-93cd9763 postfix/smtp[10991]: connect to reception.mail-tester.com[94.23.206.89]:25: Connection timed out
2025-01-01T22:14:03.673338+00:00 vps-93cd9763 postfix/smtp[10991]: 4YNdjC4G5Dz42c1: to=<[email protected]>, relay=none, delay=13324, delays=13294/0.26/30/0, dsn=4.4.1, status=deferred (connect to reception.mail-tester.com[94.23.206.89]:25: Connection timed out)
Master.conf:
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (no) (never) (100)
# ==========================================================================
smtp inet n - y - - smtpd
#smtp inet n - y - 1 postscreen
#smtpd pass - - y - - smtpd
#dnsblog unix - - y - 0 dnsblog
#tlsproxy unix - - y - 0 tlsproxy
# Choose one: enable submission for loopback clients only, or for any client.
#127.0.0.1:submission inet n - y - - smtpd
submission inet n - y - - smtpd
# -o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
# -o smtpd_tls_auth_only=yes
# -o local_header_rewrite_clients=static:all
# -o smtpd_reject_unlisted_recipient=no
# Instead of specifying complex smtpd_<xxx>_restrictions here,
# specify "smtpd_<xxx>_restrictions=$mua_<xxx>_restrictions"
# here, and specify mua_<xxx>_restrictions in main.cf (where
# "<xxx>" is "client", "helo", "sender", "relay", or "recipient").
-o smtpd_client_restrictions=permin_sasl_authenticated,reject
# -o smtpd_helo_restrictions=
# -o smtpd_sender_restrictions=
# -o smtpd_relay_restrictions=
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
Main.conf
# Enable SASL authentication on port 25 and force TLS-encrypted SASL authentication.
# WARNING: NOT RECOMMENDED to enable smtp auth on port 25, all end users should
# be forced to submit email through port 587 instead.
#
#smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_tls_auth_only = yes
smtpd_use_tls = yes
smtp_use_tls = yes
Любые идеи будут очень полезны!
Ответ или решение
Для того чтобы отправить почту с использованием SMTP на mail-tester.com и Duck.com через Postfix на порту 587, необходимо произвести ряд изменений и настроек. В данной ситуации вы имеете рабочую установку iRedMail с Postfix, где отправка почты на Google и Yandex осуществляется по IPv6 через порт 25. Однако некоторые почтовые сервисы, такие как mail-tester.com и Duck.com, не поддерживают данный подход. Рассмотрим det глубоком подходом и шаги для решения этой задачи.
Для начала ознакомимся с текущей конфигурацией:
-
Конфигурация master.cf:
- Включена служба
submission
, слушающая на порту 587. Этот параметр в файле конфигурации уже настроен, и это хорошо, поскольку порт 587 является предпочтительным для SMTP-передачи с аутентификацией.
- Включена служба
-
Конфигурация main.cf:
- Обеспечена поддержка шифрования через TLS, что существенно для безопасной передачи данных.
Шаги для настройки:
Шаг 1: Настройка аутентификации SASL
Поскольку многие сервера, во избежание спама, не принимают неаутентифицированные соединения через порт 587, убедитесь, что в main.cf включена SASL аутентификация.
- Проверьте, что
smtpd_sasl_auth_enable
используется для порта 587:smtpd_sasl_auth_enable = yes smtpd_tls_security_level = encrypt smtpd_tls_auth_only = yes smtpd_sasl_security_options = noanonymous
Шаг 2: Редактирование master.cf для порта 587
Убедитесь, что конфигурационный блок для submission
приведен в порядок:
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
- Постарайтесь избегать использования
smtpd_tls_auth_only=yes
, если это отрицательно сказывается на совместимости, например, если клиент не поддерживает STARTTLS.
Шаг 3: Актуализация DNS и сертификатов
Обновление DNS-записей может помочь с рассылкой через дополнительные SMTP сервера, указывая их IP-адреса. Проверьте, соответствуют ли SPF и DKIM записям предполагаемым настройкам. Также удостоверьтесь в актуальности TLS-сертификатов, так как это может напрямую влиять на прием сообщений.
Шаг 4: Проверка подключения
-
Используйте команду
telnet
для проверки соединения с окончательными серверами. Если соединение блокируется брандмауэром или другими политиками, необходимо будет разрешить порты или обновить сетевые политики. -
telnet reception.mail-tester.com 587
Завершение и тестирование
После внесения всех изменений перезапустите Postfix:
sudo systemctl restart postfix
Проверьте журналы для выявления ошибок или предупреждений:
sudo tail -f /var/log/mail.log
Тестируйте отправку писем на mail-tester.com и Duck.com через подходящие клиентские приложения, которые используют порт 587, и учитывайте соответствующую аутентификацию.
Следуя этим шагам, вы создадите эффективную и функциональную среду для отправки писем на mail-tester.com и Duck.com посредством порта 587. Обеспечьте регулярный мониторинг системных логов для быстрой идентификации и устранения возникающих проблем.