我在亚马逊的远程服务器上安装了 ubuntu 服务器。
我正在尝试允许远程连接根据 ubuntu 系统配置的用户/密码发送电子邮件。意味着我的系统中的每个用户都可以使用他自己的凭据发送电子邮件。
首先我在亚马逊的防火墙中打开了端口 25。
然后我配置了以下文件:
postfix 中的 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 服务器并发送电子邮件。
我遇到的问题是我无法从外部连接到 smtp 服务器。当我尝试 telnet 时,连接超时。我能够从本地服务器 telnet 到端口 25 上的 127.0.0.1。我检查了一下,发现 inet 接口已配置为全部,而且我确实在 amazon 防火墙上打开了端口 25,所以我唯一想到的就是,出于某种原因,postfix 本身阻止了外部连接。
如果 postfix 阻止了外部连接,那么我在配置中遗漏了一些东西。
我有点迷茫了...任何与此问题相关的信息都将不胜感激。
答案1
提交是 TCP/587 smtp 是 TCP/25
听起来像是防火墙问题,您可能需要向 aws 支持请求打开端口 25。测试您是否可以 telnet 到 587 并将经过身份验证的电子邮件发送到本地邮箱。
如果您通过 587 上的中继主机发送并通过第三方垃圾邮件过滤器在 2525 等备用端口上检索,则仍然可以使电子邮件正常工作。