Postfix 继续使用主机名而不是域名发送邮件

Postfix 继续使用主机名而不是域名发送邮件

我正在尝试将 Postfix 配置为仅发送(不接收)电子邮件。我已遵循指南,但我没有改变我的hostname以匹配我的域,因为如果我可以避免它,我愿意这样做。

因此,经过多次尝试后,我仍不断收到带有 的电子邮件hostname@这非常令人沮丧,因为我已将文件$myhostname中的所有变量替换/etc/postfix/main.cf为域名,但 Postfix 似乎不喜欢它并继续发送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 = example.com 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

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2

# 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 = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = example.com
mydestination = example.com, localhost.example.com, 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
inet_protocols = all

我做错了什么?我还需要调整其他东西吗?提前致谢。

答案1

mail软件包中的程序邮件实用程序正在添加域,然后sendmail从包中调用后缀。默认情况下,mail添加 shell 变量主机名作为发件人域名sendmail。要么更改主机名或编辑/etc/mailutils.conf并添加program mail { address { email-domain sender.domain.my ; } }

sendmail都可mail用于发送电子邮件。sendmail将添加列出的域名/ETC/邮件姓名如果发件人还没有域。如上所述,mail将添加发件人域,覆盖sendmail配置。

注意主机名设置/ETC/主持人姓名whilesendmail使用/ETC/邮件姓名

为了帮助调试,请运行tail -f /var/log/syslog。另请注意,要在 中完成一封电子邮件,请sendmail输入包含单个句点的行,而要在 中结束一封电子邮件,请mail输入 EOF 字符\<ctrl\>D

也可以看看更改 mailutils 中的默认域

答案2

编辑/etc/mailname为一行,包含您的域名,并以换行符结尾,例如:

example.com

然后编辑/etc/postfix/main.cf以取消注释该行

#myorigin = /etc/mailname

将其渲染为

myorigin = /etc/mailname

答案3

可能的答案在 /etc/hosts 中。有 2 行:

127.0.1.1       hostname.domain_name  hostname
192.168.0.47    hostname.domain_name  hostname

删除“主机名”,行变为:

127.0.1.1      domain_name  hostname
192.168.0.47   domain_name  hostname

有用!

相关内容