sendmail 是 smtp 服务器吗?MTA 和邮件服务器有什么区别?

sendmail 是 smtp 服务器吗?MTA 和邮件服务器有什么区别?

我是邮件新手,不太清楚它的具体工作原理。

我见过管理员使用 sendmail 发送电子邮件。sendmail 是 smtp 服务器还是依赖 smtp 服务器来中继电子邮件的客户端?我在 Google 上搜索后发现它是一个邮件传输代理。

邮件传输代理和邮件服务器之间有什么区别?

假设当我使用 sendmail 发送电子邮件到[电子邮件保护]:我是否仍需要通过另一个 smtp 服务器(google.com?)或者我可以使用 sendmail 从我的服务器发送邮件?

如果有好心人能给我提供一份关于邮件服务器如何工作的入门指南就更好了。

谢谢

答案1

在我看来,这个小教程,MUA、MTA 和 MDA,非常擅长解释Unix电子邮件系统的基本概念。

是的,正确配置发送邮件应该能够将电子邮件发送到可访问主机上的任何 MTA(但大都会运输署可能会因各种原因拒绝邮件)

现在,当您说mail server这通常是指以下任一或两者的替代路径时:

  • 接收方
    基本上用邮件服务器 + 在各种独立机器上运行的各种邮件客户端模型(如 web/流行音乐/信息访问协议/etc,通常适用于大多数公共邮件服务(如 gmail/yahoo)。
  • 发送端
    基本上用邮件服务器 + 在各种独立机器上运行的各种邮件客户端模型取代发送主机 MUA+MTA

答案2

我曾经对此进行过一些调查。

也许应该避免使用“邮件服务器”这样的术语,因为一旦开始使用像 MTA 这样的术语,您现在就使用了一个非常具体的术语 - 甚至是命名法,而“邮件服务器”可能太过笼统,甚至含糊不清,毫无意义。

据我所知,情况是这样的

MUA-->MSA--->MTA--->(MDA->Comp)<--MUA

并涉及 IMAP/POP 客户端 (MRA) 和 IMAP/POP 服务器 (MAA)

sending(A->B->C->D->X)   then  from receiving right to left (X<--B<--A)
    A      B     C          D          X      B     A 
    MUA-->MSA--->MTA--->(MDA->Comp)-->MAA<---MRA<--MUA

电子邮件发送至 user@domain

移动用户代理 是电子邮件客户端。它是 SMTP 客户端。(或者更准确地说,是配置为运行特定 SMTP 客户端的用户界面,该客户端当然位于该机器本地,但当然会连接到 SMTP 服务器)

管理咨询委员会是一个 MTA,意味着它传输电子邮件,但它是 MUA 连接的 MTA。并且它位于本地域中。它将运行 SMTP。它将是一个 SMTP 服务器。(可能还有其他协议可以作为 SMTP 的替代方案运行)。

大都会运输署 是目标域中的 MTA。

丙二醛是收件人域中的一台计算机,它将消息写入/“传递”到“邮件存储”,该存储位于计算机可以访问的硬盘上。通常位于本地。该邮件存储为域中的用户存储邮件。

MAA 和 MRA- 这些与接收电子邮件有关,而不是发送电子邮件。术语 MAA 不太为人所知,人们通常将 MRA 称为 IMAP/POP 客户端,而不给服务器缩写。我听说 MRA 是客户端和服务器的术语,争论在于它说的是代理,所以只描述了一个功能,定义并不局限于客户端或服务器。但使用术语 MAA 的网站似乎将 MAA 定义为服务器,将 MRA 定义为客户端,也许他们是对的。所以我将采用这种方式,并引用两个网站的定义和示例。

MAA 是 POP/IMAP 服务器。MRA 是 POP/IMAP 客户端。两个链接提到了这一点。

https://www.ida.liu.se/~TDDI09/lectures/TDDI09-F4.pdf
MRA 客户端 Fetchmail
MAA 服务器 Courier IMAPD

http://archive.vector.org.uk/art10500970
MAA(邮件访问代理):
管理电子邮件帐户的文件夹,并将邮件提供给 MRA。MRA(邮件检索代理):通过 MAA 访问电子邮件文件夹,并将邮件提供给 MUA


您询问有关 Sendmail 的问题。我对这些与电子邮件相关的 Linux 程序了解甚少,但 Sendmail 确实有一个 SMTP 客户端,尽管它主要是 MTA(任何可以用作 MTA 的程序都可以用作 MSA,MSA 只是 MTA 的一种形式)。

您询问,如果没有安全检查,是否可以直接发送到目标域的 MTA。我想我曾经做过一次 MUA 到 MTA 的操作,只涉及一个 SMTP 服务器,所以是的。但通常是您本地域上的 MSA 将其发送到那里的 MTA。因此通常涉及两个 SMTP 服务器。我想我这样做是为了看到这一点,我运行了一个 MSA SMTP 服务器 sendmail 或 postfix,看到它在域上执行 DNS 检查,并看到它找到了目标 MTA(另一个 SMTP 服务器)。然后我想,我会尝试直接发送。对于我想要发送到的一个域,我可以直接连接到该目标 MTA。

答案3

“电子邮件服务器”这个术语含糊不清。电子邮件有很多移动部件。

  • Sendmail 是邮件传输/传输代理 (MTA),又称 SMTP 服务器。(还有其他,例如exim4

    • 某些程序将打开与域的 SMTP 服务器的会话,以将消息发送到该域上的另一台主机。(通过 DNS MX 记录找到域的 SMTP 服务器)
  • 一旦 SMTP 服务器收到消息,它就可以执行以下几项操作:

    • 如果收到的消息是发往不同域的,它可以将消息中继到该域的 SMTP 服务器。
    • 如果收到的消息与 SMTP 服务器所在的域相同,它可以将消息传递给本地邮件传递代理 (MDA)(如果它本身不充当 MDA)。
    • 在 UNIX 系统上,本地 MDA 通常将消息复制到本地用户的邮件池(mboxMaildir)或其他存储机制。

如果您在 UNIX/Linux 系统上运行 SMTP 服务器,则可以使用邮件用户代理 (MUA)(例如muttpine或其他程序)从本地缓冲池读取邮件。您必须登录到本地系统才能使用此功能。

如果您想阅读存储在远程系统上的邮件怎么办?远程系统必须运行 POP3 或 IMAP 服务器,该服务器将从远程系统上的帐户获取消息并将其发送给您,如果是 IMAP,则可选择具有管理功能。POP3/IMAP 无法发送消息。

允许您通过 POP3 或 IMAP 从远程服务器读取邮件的应用程序也将允许您通过 SMTP 发送邮件,并且必须实现/成为这两种协议的客户端。POP3/IMAP 和 SMTP 不必位于同一主机上。

多年来,大多数协议都增加了安全性。每种协议都有可选方法来要求客户端证书或身份验证。保护 SMTP 服务器不为未经身份验证的用户中继电子邮件尤为重要,因为它通常会被滥用于垃圾邮件目的。SMTP 用户名/密码/证书可以与任何 POP3/IMAP 不同,而 POP3/IMAP 也可以与系统上的任何本地帐户不同。

相关内容