Я не уверен, что это то место, куда я должен это поместить, но вот как я получил это.
Итак, kworr и befreeandgood направили меня на верный путь. Smtp_sasl_ * ничего не делает с SSL, только с аутентификацией.
Я выполнил комбинацию инструкций из следующих ссылок:
Это меня близко
http://www.eglug.org/book/export/html/1923
но упустил некоторые настройки.
Этот http://tech.surveypoint.com/blog/relay-mail-with-postfix-and-stunnel/ добавил inet_interfaces = loopback_only
.
Эти варианты меня достали к некоторым проблемам с почтовым сервером, отклоняющим различные имена заголовков, такие как «от» и «ответ на». Я исправил их с помощью некоторых инструкций, которые я нашел через поиск в Google (но мне не разрешено публиковать эти ссылки, поскольку я уже превысил свою квоту ссылок).
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = loopback-only
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = my-office.local
myhostname = td1000.my-office.local
mynetworks = /etc/postfix/network_table
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.5.6/README_FILES
relayhost = 127.0.0.1:5001
sample_directory = /usr/share/doc/postfix-2.5.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_connect_timeout = 60
smtp_generic_maps = hash:/etc/postfix/generic
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_sasl_type = cyrus
smtp_use_tls = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
smtpd_tls_auth_only = no
smtpd_tls_loglevel = 2
smtpd_tls_received_header = no
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_domains =
virtual_transport = lmtp:unix:/var/lib/imap/socket/lmtp
Таким образом, smtp_generic_maps использовался для переименования различных адресов, которые подходили к какой-то адрес, который действительно существует. Мне пришлось сделать это для двух разных имен, которые я нашел, просмотрев файл / var / log / maillog.
Итак, сводка для подключения к Bluehost:
stunnel
для создания туннеля SSL smtp_generic_maps
для сопоставления несуществующих имен пользователей, которые использует звездочка. $ myorigin
как на возможное решение. When destination domain has no MX records SMTP server should try delivering mail to any of domain A records. For example.net
this would be any address of example.net
.
If the connection to encrypted port fails you need to consult postfix manual about smtp_tls_security_level parameter. You can find there a lengthy explanation but I think in most cases you just need to add to your config:
smtp_tls_security_level=may
У нас есть два факта
Одним из возможных объяснений является SMTP-клиент в Postfix 2.11 или более ранней версии не поддерживает SSL .
В SMTP есть две схемы шифрования : STARTTLS и SMTPS. Разница в том, что (1) SMTPS требует SSL-шифрование из первого байта и (2) STARTTLS сначала требует текстовый режим и, возможно, клиент и сервер выполняют согласование SSL после команды STARTTLS.
SMTP-сервер Postfix (smtpd) поддерживает оба протоколы . Проблема в том, что SMTP-клиент (до postfix 3.0) - тот, кто отправляет электронную почту на удаленный сервер - не поддерживает SMTPS-соединение. Он поддерживает только режим обычного текста или режим STARTTLS.
Здесь происходит следующее: SMTP-клиент Postfix использует режим обычного текста для подключения к Bluehost, потому что postfix хочет установить STARTTLS. Но Bluehost ожидает, что первый байт был согласованием SSL, а не простым текстом. Это несоответствие заставляет сервер Bluehost молча отбрасывать данные и отключать постфикс. Postfix не знает, что здесь происходит, поэтому выдает ошибку в maillog
Sep 27 16:31:51 TD1000 postfix/smtp[9757]: 1B2C357117: to=<me@mycompany.com>, relay=boxNNN.bluehost.com[a.b.c.d]:465, delay=5241, delays=5076/0.03/165/0, dsn=4.4.2, status=deferred (lost connection with boxNNN.bluehost.com[a.b.c.d] while receiving the initial server greeting)
Документация Postfix TLS предоставляет обходной путь для использования stunnel. Итак решение от MrPhilTX было правильным для Postfix <3.0.
В postfix 3.0 Wietse Venema решил предоставить дополнительную функцию SMTPS для postfix SMTP-клиента. Благодаря этой функции решение stunnel здесь не требуется. Здесь есть два варианта:
a) Включить SMTPS для всех исходящих SMTP-соединений
Обычно в этом случае postfix имеет SMTPS-only relayhost
, как проблема OP. Итак
# Client-side SMTPS requires "encrypt" or stronger.
smtp_tls_security_level = encrypt
smtp_tls_wrappermode = yes
# The [] suppress MX lookups.
relayhost = [mail.example.com]:465
b) Включите SMTPS для нескольких хостов
В другом случае вам понадобятся настраиваемые транспортные и transport_maps для выборочного включения SMTPS
# /etc/postfix/main.cf:
transport_maps = hash:/etc/postfix/transport
# /etc/postfix/transport:
example.com relay-smtps:example.com:465
#/etc/postfix/master.cf:
relay-smtps unix - - n - - smtp
# Client-side SMTPS requires "encrypt" or stronger.
-o smtp_tls_security_level=encrypt
-o smtp_tls_wrappermode=yes