POSTFIX 錯誤:421 4.7.0 稍後重試,關閉連線。 (埃洛)

POSTFIX 錯誤:421 4.7.0 稍後重試,關閉連線。 (埃洛)

main.cf在 Linux SUSE 上的 postfix 中設定如下

inet_interfaces = localhost
inet_protocols = ipv4

masquerade_domains =
masquerade_exceptions = root
mydestination = $myhostname, localhost.$mydomain
myhostname = localhost
mynetworks_style = subnet
relayhost=[smtp-relay.gmail.com]:25

smtpd_delay_reject = yes
smtpd_helo_required = no

smtpd_client_restrictions =

smtpd_helo_restrictions =

smtp_sasl_auth_enable = no
smtp_sasl_security_options =
smtp_sasl_password_maps =
smtpd_sasl_auth_enable = no

smtp_use_tls = no

我嘗試過telnet smtp-relay.gmail.com 25並且有效

無論如何,當我嘗試在伺服器中使用後綴發送電子郵件時,我遇到了問題。

root@localhost
(host smtp-relay.gmail.com[ipv4] refused to talk to me: 421 4.7.0 Try again later, closing connection. (EHLO)

答案1

看著谷歌官方文檔看起來他們這邊有個「速率限制」:

 421, "4.7.0", Try again later, closing connection. This usually indicates a Denial of Service (DoS) for the SMTP relay at the HELO stage.

您每分鐘發送多少封郵件?根據經驗,Gmail 通常每分鐘最多接受 50/100 封郵件。

根據評論編輯

好吧,看起來同樣的錯誤出現在錯誤的 HELO/HELO 中(正如我最初懷疑的那樣)。

我剛剛嘗試過:

$> telnet smtp-relay.gmail.com 25
Trying 108.177.15.28...
Connected to gmail-smtp-relay.l.google.com.
Escape character is '^]'.
220 smtp-relay.gmail.com ESMTP b8-v6sm74445wrr.1 - gsmtp
helo localhost
421 4.7.0 Try again later, closing connection. (EHLO) b8-v6sm74445wrr.1 - gsmtp
Connection closed by foreign host.

所以它絕對是你的 EHLO 字串。

myhostname = localhost你的文件中有main.cf,你應該用 更改它myhostname = [your server fqdn],即你應該有一個完全合格的域名對於您的伺服器,請填寫正確的 DNS/rDNS 項目。

答案2

我在 PHP 應用程式中使用 Symfony/Mailer 時確實遇到了這個問題。它確實使用了 SMTP 中繼,如下所示:

MAILER_DSN=smtp://smtp-relay.gmail.com:587

修復方法是定義local_domain參數:

MAILER_DSN=smtp://smtp-relay.gmail.com:587?local_domain=your-domain.com

相關內容