我在 Debian 上使用 Postfix 时遇到问题:554 5.7.1 中继访问被拒绝

我在 Debian 上使用 Postfix 时遇到问题:554 5.7.1 中继访问被拒绝

几天前,我在安装 postfix 时遇到了一个问题。我知道网上有很多关于这个问题的资料,但我试过的方法都没有用。

我的问题如下:我可以使用服务器上的终端向外部发送和接收(并阅读)电子邮件,通过 SSH。我的意思是,当我登录我的服务器时。但我无法通过我的服务器(在我的服务器网络之外)使用 SMTP 客户端发送电子邮件。

我的服务器是 Debian 9。我按照 Debian wiki 启用了 Cyrus SASL 的 SASL 身份验证:https://wiki.debian.org/PostfixAndSASL#Implementation_using_Cyrus_SASL

当我运行telnet mail.myserver.com 25EHLO 时,我得到:

250-mail.myserver.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 SMTPUTF8

我还可以通过 telnet 使用 base64 进行身份验证:

AUTH PLAIN <base64_string>
235 2.7.0 Authentication successful

在我的/etc/postfix/main.cf我有:

smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks

问题如下:

我连接了我的服务器电子邮件地址([电子邮件保护]) 到我的个人 Gmail 地址,方法是在我的 Gmail 网络客户端上通过“设置”>“帐户和导入”>“以...身份发送邮件”。我设置了我的 smtp 服务器、用户和用户密码。我使用了端口 587 和 TLS。它成功通过了身份验证,我完成了验证过程。

但是,当我使用 Gmail 发送带有“发送为[电子邮件保护]“,它会在我的服务器上反弹。从/var/log/mail.log我可以看到:

postfix/smtpd[1968]: connect from mail-ed1-f47.google.com[209.85.208.47]
postfix/smtpd[1968]: Anonymous TLS connection established from mail-ed1-f47.google.com[209.85.208.47]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
postfix/smtpd[1968]: NOQUEUE: reject: RCPT from mail-ed1-f47.google.com[209.85.208.47]: 554 5.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-ed1-f47.google.com>
postfix/smtpd[1968]: disconnect from mail-ed1-f47.google.com[209.85.208.47] ehlo=2 starttls=1 auth=1 mail=1 rcpt=0/1 data=0/1 quit=1 commands=6/8

正如我所说,发送电子邮件至[电子邮件保护]从我的服务器终端运行正常,使用 SPF、DKIM 和 DMARC 密码。

我不知道该怎么办。如果有人能帮助我,我将不胜感激。

答案1

解决了。​​只需添加permit_sasl_authenticatedsmtpd_relay_restrictions而不仅仅是smtpd_recipient_restrictions

相关内容