Мы пытаемся использовать sender_dependent_default_transport_maps
функция postfix для использования различных SMTP-реле на основе from
адрес почты. Цели:
from
адрес электронной почты для автоматических сообщений (например, noreply@partner1.com
)noreply@partner1.com
действительно достигают своих пользователей (например, user1@partner1.com
)Наша текущая конфигурация работает нормально, но использует только наш собственный SMTP-сервер.
В /etc/postfix/master.cf
прост и выглядит так:
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (no) (never) (100)
# ==========================================================================
smtp inet n - y - - smtpd
smtp unix - - y - - smtp
relay unix - - y - - smtp
В /etc/postfix/main.cf
следующее:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
smtpd_tls_cert_file=<path to PEM>
smtpd_tls_key_file=<path to KEY>
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = appserver.provider.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = $myhostname, appserver, localhost.localdomain, , localhost
relayhost = mail.provider.com:465
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/passwd
smtp_sasl_mechanism_filter =
smtp_sasl_security_options =
smtp_tls_security_level = encrypt
smtp_tls_wrappermode = yes
smtp_tls_mandatory_ciphers = high
canonical_maps = hash:/etc/postfix/canonical_maps
sender_canonical_maps = hash:/etc/postfix/sender_canonical_maps
header_checks = regexp:/etc/postfix/header_checks
Я попробовал следующую конфигурацию для достижения цели.
main.cf
: relayhost = mail.provider.com:465
sender_dependant_default_transport_maps = hash:/etc/postfix/sender_dependant_default_transport.map
Добавить /etc/postfix/sender_dependant_default_transport.map
со следующим содержанием:
@partner1.com : smtp.partner1.com
@provider.com : mail.provider.com:465
сгенерируйте карту db: sudo postmap /etc/postfix/sender_dependant_default_transport.map
sudo service postfix restart
@provider.com
к @provider.com
Письмо не отправляется:
postfix/smtpd[3011]: connect from localhost[127.0.0.1]
postfix/smtpd[3011]: 3BE61178E1E: client=localhost[127.0.0.1]
postfix/cleanup[3032]: 3BE61178E1E: message-id=<20181016075730.3BE61178E1E@appserver.provider.com>
postfix/qmgr[2997]: 3BE61178E1E: from=<provider@provider.com>, size=376, nrcpt=1 (queue active) postfix/smtp[3033]: connect to mx2.provider.com[<IPv6>]:25: Network is unreachable
postfix/smtp[3033]: SSL_connect error to mx1.provider.com[<IPv4>]:25:
postfix/smtp[3033]: warning: TLS library problem: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:794: postfix/smtp[3033]: 3BE61178E1E: Cannot start TLS: handshake failure postfix/smtp[3033]: SSL_connect error to mx2.provider.com[<IPv4>]:25: -1 postfix/smtp[3033]: warning: TLS library problem: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:794:
postfix/smtp[3033]: 3BE61178E1E: Cannot start TLS: handshake failure
postfix/smtp[3033]: SSL_connect error to mx3.provider.com[<IPv4>]:25:
postfix/smtp[3033]: warning: TLS library problem: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:794: postfix/smtp[3033]: 3BE61178E1E: Cannot start TLS: handshake failure postfix/smtp[3033]: connect to mx1.provider.com[<IPv6>]:25: Network is unreachable
postfix/smtp[3033]: 3BE61178E1E: to=<provider@provider.com>, relay=none, delay=19, delays=18/0.01/0.54/0, dsn=4.4.1, status=deferred (connect to mx1.provider.com[<IPv6>]:25: Network is unreachable)
@partner1.com
к @provider.com
Письмо не отправляется:
postfix/smtpd[3237]: connect from localhost[127.0.0.1]
postfix/smtpd[3237]: 6234B178E1E: client=localhost[127.0.0.1]
postfix/cleanup[3252]: 6234B178E1E: message-id=<20181016081109.6234B178E1E@appserver.provider.com>
postfix/qmgr[2997]: 6234B178E1E: from=<noreply@partner1.com>, size=368, nrcpt=1 (queue active) postfix/smtp[3253]: connect to mx3.provider.com[<IPv6>]:25: Network is unreachable
postfix/smtp[3253]: SSL_connect error to mx2.provider.com[<IPv4>]:25: -1
postfix/smtp[3253]: warning: TLS library problem: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:794: postfix/smtp[3253]: 6234B178E1E: Cannot start TLS: handshake failure postfix/smtp[3253]: connect to mx1.provider.com[<IPv6>]:25: Network is unreachable
postfix/smtp[3253]: SSL_connect error to mx3.provider.com[<IPv4>]:25: -1
postfix/smtp[3253]: warning: TLS library problem: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:794: postfix/smtp[3253]: 6234B178E1E: Cannot start TLS: handshake failure postfix/smtp[3253]: connect to mx2.provider.com[<IPv6>]:25: Network is unreachable
postfix/smtp[3253]: 6234B178E1E: to=<provider@provider.com>, relay=none, delay=16, delays=16/0.01/0.33/0, dsn=4.4.1, status=deferred (connect to mx2.provider.com[<IPv6>]:25: Network is unreachable)
Извините за очень длинное введение, но я хотел убедиться, что я был внимателен.
Кажется, что:
main.cf
был поднят, потому что postfix больше не пытается использовать реле по умолчанию mail.provider.com
но по умолчанию используются записи MXsender_dependant_default_transport_maps
вообще не используетсяКак убедиться, что он действительно используется? Может быть другая причина?
По постфиксным логам при перезапуске параметр не используется:
postfix[4582]: /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: sender_dependant_default_transport_maps=hash:/etc/postfix/sender_dependant_default_transport_maps
но он говорит мне, почему он не используется ..
В конце концов, это была просто опечатка: sender_dependant_default_transport_maps
не существует, пока правильное написание sender_dependent_default_transport_maps