当我在 ubuntu 上安装 postifix 邮件服务器时....我需要一个 FQDN .....这是服务器的名称还是将向该服务器发送邮件的电子邮件客户端的名称...实际是什么机制在这里?您能否提供一种机制,其中包括以下问题的答案:.......当我们配置 postfix 时......我们是否添加电子邮件客户端的 IP,它必须从该客户端接收电子邮件,或者任何人都可以使用该服务器如果他知道这是IP。
示例中[电子邮件受保护]哪一部分属于用户,哪一部分属于邮件服务器? ....此外,一旦电子邮件客户端将电子邮件以及收件人电子邮件地址提交到我的 postfix 服务器,postfix 如何知道使用哪个 DNS 来查找收件人邮件服务器的 IP。
答案1
这是一个大而复杂的问题,但我会尽力解释基础知识。这里实际上有两个问题:如何让您的服务器接收某个域名的邮件,以及如何允许客户端通过它发送外发邮件(“中继”)。
接收邮件:邮件服务器自己的名称通常与其接收邮件的域不同,并且不一定与它们有任何关系。例如,[电子邮件受保护]可能由 mail.example.com 处理,也可能由 google.com 下的 gmail 服务器处理。
这里有两个关键部分:为了将发送到 @example.com 的邮件发送到 yourserver.example.net,您需要 example.com 的 DNS 条目中的 MX 记录。以下是 stackexchange.com 的相关信息:
$ dig -t mx stackexchange.com
[...]
;; ANSWER SECTION:
stackexchange.com. 300 IN MX 5 alt2.aspmx.l.google.com.
stackexchange.com. 300 IN MX 1 aspmx.l.google.com.
stackexchange.com. 300 IN MX 10 alt3.aspmx.l.google.com.
stackexchange.com. 300 IN MX 10 alt4.aspmx.l.google.com.
stackexchange.com. 300 IN MX 5 alt1.aspmx.l.google.com.
[...]
...所以发送到 @stackexchange.com 的邮件将被发送到任何 google.com 服务器(服务器名称之前的数字是优先级,因此将首先尝试 aspmx.l.google.com,然后是 alt1 和alt2,然后是 alt3 和 alt4)。
接收邮件的另一部分是您的服务器必须意识到它应该接受发送到这些域的邮件,并将它们放入邮箱中(而不是尝试将它们转发到另一台服务器)。在 postfix 中,这可以通过将它们添加到mydestination
在 postfix 中,可以通过将它们添加到main.cf 的列表中或将它们设置为虚拟域来。看这里。
中继外发邮件:这里真正关键的事情是防止垃圾邮件发送者将您用作“开放中继”来发送垃圾邮件。这里最简单的选择是:不提供中继服务。根据您的情况,您的客户可能已经拥有发送外发电子邮件的完美方法,在这种情况下,您可以跳过令人头疼的问题和风险。如果您确实需要允许中继,则需要某种方法来区分值得信赖的客户端和垃圾邮件发送者。您可以让客户端根据发件人的来源 IP 地址对发件人进行身份验证和/或信任。客户端身份验证通常更好(但请不要让他们以明文形式发送密码!)。仅在必要时才应使用受信任的 IP,因为如果垃圾邮件发送者可以破坏受信任网络上的设备(甚至只是将 SMTP 流量从设备上退回),他们就可以将您用作开放中继。
当然还有更多内容,但希望这能为您提供基础知识。
哦,还有一件事:虽然电子邮件域可能与服务器名称不同,但客户端将在其发送/接收配置中使用实际的服务器名称。