我为我的服务器设置了 Postfix 和 Dovecot,使用自签名证书,一切正常。我可以发送电子邮件,但我无法从我的服务器(比如我的 iPhone)发送电子邮件。我被拒绝中继访问。
这是我设置 SSL 的原因之一,因为我知道这不会成为问题。我现在想知道匿名 TLS 连接是否是因为我使用了自签名证书,还是因为我没有正确登录。我的邮件客户端 (mac) 设置为使用端口 465 并检查了 SSL。
我的submission
参数来自master.conf
:
submission inet n - n - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sasl_local_domain=$myhostname
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_sender_login_maps=hash:/etc/postfix/virtual
-o smtpd_sender_restrictions=reject_sender_login_mismatch
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,
reject_unknown_recipient_domain,permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
日志:
Jul 12 22:07:24 www postfix/smtpd[29973]: 0020 7a 1a 73 15 eb dc ce 99| z.s.....
Jul 12 22:07:24 www postfix/smtpd[29973]: SSL_accept:SSLv3 read finished A
Jul 12 22:07:24 www postfix/smtpd[29973]: cpc98338-croy25-2-0-cust350.19-2.cable.virginm.net[x.x.x.x]: Reusing old session
Jul 12 22:07:24 www postfix/smtpd[29973]: Anonymous TLS connection established from cpc98338-croy25-2-0-cust350.19-2.cable.virginm.net[x.x.x.x]: TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Jul 12 22:07:24 www postfix/smtpd[29973]: NOQUEUE: reject: RCPT from cpc98338-croy25-2-0-cust350.19-2.cable.virginm.net[x.x.x.x]: 554 5.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to= <[email protected]> proto=ESMTP helo=<[192.168.0.14]>
Jul 12 22:07:24 www postfix/smtpd[29973]: disconnect from cpc98338-croy25-2-0-cust350.19-2.cable.virginm.net[x.x.x.x]
我该如何解决这个问题?
答案1
有其他问题,你能从 iPhone 发送电子邮件(可能也可以从 iMac 电子邮件客户端发送电子邮件),即使两个端口上的唯一选项都是纯文本(没有 SSL/TLS)二十五(但这个端口可能被你的 ISP 阻止了)和端口587。当然,不建议不使用 SSL/TLS,但这是可能的,并且符合定义的标准。检查
/var/log/mail.log
(在 Debian 系列上)或其他 Postfix/系统邮件日志文件,看看当您无法将邮件提交到 25 或 587 时会发生什么。当然,在此之前,请确认一切基本正确,方法是谈论 SMTP通过 telnet 连接到您的服务器:telnet yourserver.tld 25
和telnet yourserver.tld 587
。这里和这里是一位向导。提交可通过以下指令实现
master.cf
:submission inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,permit_mynetworks,check_relay_domains,reject
请注意,这
-o
完全取决于您在服务器上拥有的内容,但提供的是一些常见的默认值。取消注释此行即可启用 SMTPS (465):
smtps inet n – – – – smtpd
和以下
-o
。同样,你必须根据自己的需要进行调整,但合理的默认值通常存在于master.cf
当然,任何更改后都要重新启动 Postfix(没必要这么说,但也不会有什么坏处)
希望这可以帮助。
答案2
您的手机未对发送邮件进行身份验证。可能是因为您忘记告诉它需要进行身份验证。
改变它,它应该会起作用。或者至少你会遇到不同的问题。
答案3
对于其他人来说,以下内容修复了我的中继问题。希望对您有所帮助。
我通过以下方式修复了该问题:
-更改为端口 587
-在 master.cf 中更改 smtp 和提交:
-o smtpd_sender_restrictions=reject_sender_login_mismatch
到 :
-o smtpd_sender_restrictions=permit_sasl_authenticated,reject_sender_login_mismatch
现在,我可以将用户销售的邮件发送给登录服务器的任何人。
匿名连接建立消息:
Jul 30 10:36:47 www postfix/smtpd[9618]: SSL_accept:SSLv3 flush data
Jul 30 10:36:47 www postfix/smtpd[9618]: Anonymous TLS connection established from cpc98338-croy25-2-0-cust350.19-2.cable.virginm.net[82.45.65.95]: TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)
我认为这是使用自签名证书的结果。
我仍然很想知道为什么我这样登录我的客户端:
Jul 30 10:35:59 www dovecot: imap-login: Login: user=<sales>, method=PLAIN, rip=82.45.65.95, lip=172.31.8.87, mpid=9585, TLS, session=<6+DgeoZV4ABSLUFf>
Jul 30 10:35:59 www dovecot: imap-login: Login: user=<sales>, method=PLAIN, rip=82.45.65.95, lip=172.31.8.87, mpid=9608, TLS, session=<Ze/neoZV4gBSLUFf>
Jul 30 10:36:46 www postfix/smtpd[9618]: initializing the server-side TLS engine
Jul 30 10:36:46 www postfix/smtpd[9618]: connect from cpc98338-blu-25-2-0-cust350.19-2.cable.virginm.net[82.x.x.x]
Jul 30 10:36:46 www postfix/smtpd[9618]: setting up TLS connection from cpc98338-blu-25-2-0-cust350.19-2.cable.virginm.net[82.x.x.x]
Jul 30 10:36:46 www postfix/smtpd[9618]: cpc98338-blu-25-2-0-cust350.19-2.cable.virginm.net[82.x.x.x]: TLS cipher list "ALL:!EXPORT:!LOW:+RC4:@STRENGTH"
Jul 30 10:36:46 www postfix/smtpd[9618]: SSL_accept:before/accept initializati
而其他人(大概是垃圾邮件发送者)我看到了如下消息:
Jul 30 10:54:09 www postfix/smtpd[9686]: warning: unknown[80.82.78.85]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
Jul 30 10:54:09 www postfix/smtpd[9686]: disconnect from unknown[80.82.78.85]
嗯,可能是因为他们在端口 25(smtpd)登录。