我在使用 postfix 及其配置时遇到问题。我可以向外部网站(gmail、outlook、yahoo……)发送电子邮件,但无法在本地发送电子邮件。
例如,如果我的域名是 myfantasticdomain.com,我无法从[电子邮件保护]到[电子邮件保护]
这是我的配置:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
inet_interfaces = all
inet_protocols = all
mailbox_size_limit = 0
mydestination = localhost, localhost.localdomain
myhostname = myfantasticdomain.com
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_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_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
我不知道问题是什么。
谢谢
答案1
您已手动将myhostname
其从 中排除mydestination
,默认情况下它已包含。(如果您选择了一些,也会发生这种情况。)仅限本地配送配置向导中的设置。
mydestination
(默认:$myhostname, localhost.$mydomain, localhost
)通过
$local_transport
邮件传递传输。默认情况下,这是 Postfix本地(8)投递代理会查找/etc/passwd
和中的所有收件人/etc/aliases
。SMTP 服务器会使用 验证收件人地址,$local_recipient_maps
并拒绝不存在的收件人。另请参阅ADDRESS_CLASS_README
文件。默认
mydestination
值仅指定本地计算机的名称。在邮件域网关上,您还应该包括$我的域名。
因此你的选择是:
通过变量添加域
$myhostname
:mydestination = $myhostname, localhost.$mydomain $mydomain
直接添加域名:
mydestination = example.com, localhost.$mydomain $mydomain
对于此域的单独别名,请使用Postfix 虚拟域名托管, 反而。
答案2
您是否使用 dig ptr 获取了正确的主机名?例如,对于 ip 192.168.0.1:
dig ptr 1.0.168.192.in-addr.arpa +short
请确保您的服务器使用有效的名称服务器(/etc/resolv.conf)或知道 /etc/hosts 中的主机名。