У меня установлен сервер Ubuntu на удаленном сервере Amazon.
Я пытаюсь разрешить удаленным подключениям отправлять электронную почту для пользователя/пароля, настроенного системой Ubuntu. Это означает, что каждый пользователь в моей системе может отправлять электронную почту, используя свои собственные учетные данные.
Сначала я открыл порт 25 в брандмауэре Amazon.
затем я настроил следующие файлы:
master.cf в постфиксе
Я добавил следующие строки:
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_wrappermode=no
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
затем я настроил dovecot, добавив следующие строки в /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
}
ssl=required
ssl_cert = </etc/ssl/certs/mailcert.pem
ssl_key = </etc/ssl/private/mail.key
а это мой main.cf в посте:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.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
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = ip-172-31-42-234.us-west-2.compute.internal
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = tux-in.com, ip-172-31-42-234.us-west-2.compute.internal, localhost.us-west-2.compute.internal, localhost, myalcoholist.com, myalcohollist.com
virtual_alias_domains = myalcoholist.com myalcohollist.com tux-in.com
virtual_alias_maps = hash:/etc/postfix/virtual
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
relayhost =
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
home_mailbox = Maildir/
mailbox_command =
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
хорошо... пока все хорошо... у меня установлен Dovecot, поэтому у меня есть серверы IMAP и POP3, и я могу успешно получать электронные письма.
Теперь я хочу настроить свой почтовый клиент на моем рабочем столе OSX для подключения к SMTP-серверу на Amazon и отправки писем.
Проблема в том, что я не могу подключиться к серверу smtp извне. При попытке telnet соединение истекает. Я могу подключиться по telnet с локального сервера к 127.0.0.1 на порт 25. Я проверил, и интерфейсы inet настроены на все, и я открыл порт 25 на брандмауэре amazon, так что единственное, что приходит на ум, это то, что по какой-то причине сам postfix блокирует внешние соединения.
если postfix блокирует внешние соединения, значит я что-то упустил в конфигурации.
Я немного запутался... Буду очень признателен за любую информацию по этому вопросу.
решение1
отправка — TCP/587, smtp — TCP/25
Похоже на проблему с брандмауэром, возможно, вам придется запросить у поддержки aws открытие порта 25. Проверьте, можете ли вы подключиться по telnet к порту 587 и отправить письмо с аутентификацией на локальный почтовый ящик.
Вы по-прежнему можете заставить электронную почту работать, если будете отправлять ее через ретрансляционный хост на порту 587 и получать ее на альтернативном порту, например, 2525, с помощью сторонних спам-фильтров.