我第一次尝试设置 postfix。正在阅读基本配置文档,我马上就面临两个我无法理解的设置 -mydomain
和myhostname
。我遇到的情况可能最简单的 - 单个域的单个服务器。我们称之为example.com
。我的服务器为 提供网页http://anything.example.com
,我也希望它接收 的电子邮件[email protected]
。(也发送,但那只适用于授权用户;我稍后会谈到)
mydomain
那么,在这种情况下,和之间有什么区别myhostname
?或者它们都应该简单地设置为example.com
?
另外值得注意的是,我的 DNS 提供商(我自己不托管它)出于某种原因不允许我输入example.com
我的MX
记录。但这似乎更像是他们系统的一个怪癖。我已经mail.example.com
在那里设置了,但*.example.com
无论如何都会映射到我的 IP(在A
记录中),所以这应该没什么关系,对吧?
答案1
这两个文档的关键部分如下,因为它告诉我们如何使用它们。
$myhostname
用作许多其他配置参数的默认值。
$mydomain
用作许多其他配置参数的默认值。
要了解两者中应该包含的内容,请查阅以下输出postconf
:
# postconf -d | grep myhostname
lmtp_lhlo_name = $myhostname
local_transport = local:$myhostname
milter_macro_daemon_name = $myhostname
mydestination = $myhostname, localhost.$mydomain, localhost
myhostname = server.example.com
myorigin = $myhostname
smtp_helo_name = $myhostname
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_proxy_ehlo = $myhostname
对于接收邮件,example.com
您只需要在mydestination
(或virtual_alias_domains
等)中使用它,默认情况下只有$myhostname
和localhost.$mydomain
。请注意,因为mydestination
可以配置为包含纯文本example.com
(或包含它的变量$mydomain
),所以不需要$myhostname = example.com
。最终目标地址不直接基于这些变量,即它不限制您可以接受邮件的域。
另一方面,在和$myhostname
中使用。作为smtpd_banner
smtp_helo_name
RFC 5321, 4.1.1.1解释道,这应该是完全合格域名SMTP 客户端(即您的服务器)的 FQDN。一些接收 MTA 可能会验证HELO
主机名是否与 IP 地址的记录匹配PTR
,不匹配会导致额外的垃圾邮件分数,甚至在最坏的情况下被拒绝。因此,建议与记录$myhostname
中的任何内容匹配PTR
,并检查是否PTR
有相应A
记录。
此外,如果您希望接收 的邮件[email protected]
,*.example.com. A
仅有 DNS 记录是不够的(尽管如果没有MX
记录也会使用),但您也需要将其列在您的 中mydestination
。
答案2
myhostname 是完全限定域名。mydomain 是您用于电子邮件的域名。
来自文档
myhostname(默认:参见“postconf -d”输出)
此邮件系统的 Internet 主机名。默认使用 gethostname() 中的完全限定域名 (FQDN),或使用 gethostname() 中的非 FQDN 结果并附加“.$mydomain”。$myhostname 用作许多其他配置参数的默认值。
例子:
myhostname = host.example.com
mydomain(默认:参见“postconf -d”输出)
此邮件系统的 Internet 域名。默认使用 $myhostname 减去第一个部分,或“localdomain”(Postfix 2.3 及更高版本)。$mydomain 用作许多其他配置参数的默认值。
例子:
mydomain = 域名.tld
答案3
myhostname 是安装的 postfix 服务器的主机名。domain name 是配置的 SMTP 服务器域。