我正在尝试将 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
有用!