sendmail(或 postfix)总是失败,Helo 命令被拒绝

sendmail(或 postfix)总是失败,Helo 命令被拒绝

在 digitalOcean 上本教程指向安装 postfix。我尝试过这个,也卸载了 postfix,然后安装 sendmail

发送测试邮件时,总是会出现识别发件人的错误

 451 4.7.1 <m-dev>:  Helo command rejected: HELO string 'm-dev' does not match last HELO string 'theactual.ws' from this IP *(when testing with sendmail)*

[使用后缀时,它会抱怨它是由no-reply@m-dev...发送的]

本教程建议The System mail name must be the same as the name you assigned to your server。但这过于简单,并且很有可能不是受到尊重。

嗯,域名没有分配给服务器。 hostname确实返回了分配的m-dev名称。

如何设置 Ubuntu 20.04 以使用实际指向该服务器的 FQDN(+设置了 SPF 和 DKIM 配置)?

当尝试使用后缀时 postfix -n返回

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
compatibility_level = 2
inet_interfaces = all
inet_protocols = loopback-only
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = localhost.$mydomain, localhost, $myhostname
myhostname = m-dev
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_CApath = /etc/ssl/certs
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level = may

答案1

互联网上的其他邮件服务器通常希望您的服务器使用其完全限定域名来标识自己,并希望相关的正向和反向 DNS 记录相匹配。这不需要在已将其主机名设置为 FQDN 的 Linux 系统上进行任何特殊的 Postfix 配置,但 Debian 选择仅使用非限定主机名(这会导致许多其他必须解决的问题,这是其中之一)。

首先,您需要确定这台机器的完全限定域名。它不能是裸域名。完成此操作后,您需要将该名称的 DNS 地址记录设置为系统的 IPv6 和 IPv4 地址,将这些地址的 PTR 记录设置为该 FQDN,最后在 Postfix 中设置myhostname为 FQDN。

最后,如果该邮件服务器记住了其他内容作为您的 FQDN(这本身就很不寻常),您可能必须等到它忘记之后才能再次向其发送邮件。

相关内容