OS Debian12, на отдельных VM установлен postfix+dovecot, PostgreSQL, postfixadmin, RoundCube.
Клиенты с Outlook и Thunderbird почту отправляют и получают. RoundCube по IMAP подключается, ящики и почту получает, но при отправке письма выдает SMTP Error (): Authentication filed.
В логах самого RoundCube лишь стандартный обмен по telnet. И в нем и в консольном запросе к почтовому серверу нет AUTH LOGIN. Получить ответ сервера по доступному методу авторизации пока не получается никакими настройками.
root@mx:/etc/postfix# telnet localhost 25
Trying ::1...
Connection failed: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
EHLO 10.10.10.***
250-mx.example.com
250-PIPELINING
250-SIZE 52428800
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 CHUNKING
Насколько я понимаю в этом кроется ошибка невозможности отправки писем из RoundCube. Уточню, что все компоненты почтового комплекса размещены на отдельных VM (кроме postfix + dovecot). Что можно предпринять что бы RC заработал как клиент?
tail -f /var/log/mail.log
2025-06-16T11:57:00.689470+03:00 mx postfix/smtpd[96460]: disconnect from unknown[10.10.10.***] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7
2025-06-16T11:58:03.182381+03:00 mx postfix/submission/smtpd[96467]: connect from unknown[10.10.10.***]
2025-06-16T11:58:03.183312+03:00 mx postfix/submission/smtpd[96467]: warning: Milter service needs transport:endpoint instead of "opendmarc/opendmarc.sock"
2025-06-16T11:58:03.286624+03:00 mx dovecot: auth: Debug: auth client connected (pid=0)
2025-06-16T11:58:03.289173+03:00 mx postfix/submission/smtpd[96467]: disconnect from unknown[10.10.10.***] ehlo=2 starttls=1 quit=1 commands=4
root@mx:/etc/postfix# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
compatibility_level = 3.6
default_destination_recipient_limit = 1
inet_interfaces = all
inet_protocols = ipv4
mailbox_size_limit = 0
mailbox_transport = lmtp:unix:private/dovecot-lmtp
maillog_file =
message_size_limit = 52428800
milter_default_action = accept
milter_protocol = 6
mydestination = $myhostname, localhost.$mydomain, localhost
myhostname = mx.example.com
mynetworks = 127.0.0.0/8 10.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
non_smtpd_milters = $smtpd_milters
policyd-spf_time_limit = 3600
readme_directory = no
recipient_delimiter = +
relay_domains = $mydestination, proxy:pgsql:/etc/postfix/pgsql/relay_domains.cf
relayhost =
smtp_tls_loglevel = 4
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_helo_required = yes
smtpd_milters = local:opendkim/opendkim.sock,opendmarc/opendmarc.sock
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unlisted_recipient, check_policy_service unix:private/policyd-spf reject_unauth_destination
smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, defer_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks
smtpd_tls_cert_file = /etc/letsencrypt/live/mx.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mx.example.com/privkey.pem
smtpd_tls_loglevel = 4
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
smtputf8_enable = no
virtual_alias_maps = proxy:pgsql:/etc/postfix/pgsql/virtual_alias_maps.cf
virtual_gid_maps = static:2000
virtual_mailbox_base = /var/vmail
virtual_mailbox_domains = proxy:pgsql:/etc/postfix/pgsql/virtual_domains_maps.cf
virtual_mailbox_maps = proxy:pgsql:/etc/postfix/pgsql/virtual_mailbox_maps.cf
virtual_minimum_uid = 2000
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_uid_maps = static:2000
/etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
auth_default_realm = example.com
auth_username_format = %u
auth_ssl_username_from_cert = no
auth_mechanisms = plain login cram-md5 digest-md5
!include auth-sql.conf.ext
!include auth-system.conf.ext
auth_debug = yes
auth_debug_passwords = yes
/etc/dovecot/conf.d/10-ssl.conf
ssl = required
ssl_cert = </etc/letsencrypt/live/mx.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mx.example.com/privkey.pem
ssl_dh = </usr/share/dovecot/dh.pem
ssl_min_protocol = TLSv1.2
ssl_prefer_server_ciphers = yes