Postfix 删除从本地主机发送时,@ 来自收件人电子邮件地址

Postfix 删除从本地主机发送时,@ 来自收件人电子邮件地址

我已经使用 Postfix 设置了本地邮件服务器以进行测试。我已按照此步骤操作教程 设置“仅限本地” Postfix 邮件服务器,并且我还安装了 Thunderbird 进行测试。

当我向另一个本地主机地址发送电子邮件时,邮件服务器工作正常,例如,我使用 localhost.com 作为域名,当我将其发送到[电子邮件保护]它始终发送到默认用户的收件箱。但是当我尝试将邮件发送到 Gmail 地址时,Postfix 会尝试将电子邮件发送到该地址,从而gmail.com导致错误Recipient address rejected: gmail.com。因此,它会<user>@从电子邮件地址中删除该部分,我不明白为什么。

我需要邮件服务器仅能够发送出站邮件,我已尝试按照此链接上的说明进行操作http://www.postfix.org/STANDARD_CONFIGURATION_README.html#null_client但我无法找到我的机器名称是什么(postconf -d myhostname"不起作用)。

以下是我现在的配置:

主配置文件

# 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 (Ubuntu)
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 = 4h

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.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = maurice-HP-ProDesk-400-G4-MT.fun.local
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = system_mail_name, $myhostname, maurice-HP-ProDesk-400-G4-MT, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
default_transport = error
relay_transport = error
inet_protocols = all
virtual_alias_maps = hash:/etc/postfix/virtual

虚拟文件

@localhost maurice
@localhost.com maurice

答案1

此错误可能不是由 gmail 引起的,而是由您自己的服务器引起的。error传输会产生此错误。man error

根据 master.cf 中的服务名称、错误或重试,服务器使用“下一跳”信息作为未投递的原因,退回或推迟投递请求中的所有收件人。

下一跳信息就gmail.com在你的情况下

我说“可能”是因为您只提供了部分日志行。

删除它default_transport = error。让它成为默认值smtp。它唯一可以确定的是完全禁用传出流量。

此设置中可能还有其他复杂之处,但我无法用肉眼看到。似乎最好从默认配置开始配置,而不是使用一些晦涩难懂的教程。

相关内容