Linux

帶有後綴的 smtp 身份驗證拒絕錯誤“需要完全限定的主機名”

  • January 31, 2015

我的郵件伺服器存在某種問題,該伺服器由 debian 擠壓上的 postfix + dovecot + roundcube 組成。

從 roundcube 發送和接收郵件效果很好。但我無法從外部客戶端(例如 Outlook)發送郵件。我仍然可以完美地閱讀來自 POP3 或 IMAP 的郵件。我總是遇到同樣的錯誤,但是我在網際網路上找不到解決方案:

client.hostname: Helo command rejected: need fully-qualified hostname; from=<testeur2@mail.example.com> to=<testeur2@mail.example.com> proto=ESMTP helo=client.hostname

這是我後綴的 main.cf :

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
delay_warning_time = 1h

readme_directory = no

# TLS parameters
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 = coruscant.kilkoa.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
#mydestination = mail.kilkoa.com, 9274hd61061, localhost.localdomain, localhost
#relayhost =
mynetworks = 213.246.61.0/24 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

virtual_uid_maps = static:3000
virtual_gid_maps = static:3000
virtual_mailbox_base = /home/mailer

virtual_transport = dovecot

virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_mailbox_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
relay_domains = mysql:/etc/postfix/mysql_relay_domains.cf

smtpd_recipient_restrictions =
 permit_mynetworks,
 permit_sasl_authenticated,
 reject_non_fqdn_hostname,
 reject_non_fqdn_sender,
 reject_non_fqdn_recipient,
 reject_unauth_destination,
 reject_unauth_pipelining,
 reject_invalid_hostname

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous


dovecot_destination_recipient_limit = 1

有人知道嗎?

在 SMTP 事務期間,當有人向您發送郵件時,對話開始於嘗試向您發送郵件的人說這樣的話:

HELO rmotehostname.domain.com

你得到的錯誤:

: Helo command rejected: need fully-qualified hostname; from= to= proto=ESMTP helo=

是說他們發送的主機名不是完全限定的主機名。因此,他們不會發送“remotehostname.domain.com”之類的內容,而是僅發送“remotehostname。您拒絕此操作,因為您reject_non_fqdn_hostnamesmtpd_recipient_restrictions.

引用自:https://serverfault.com/questions/357990