标签:lzz,流程,用户,服务器,MTA,梳理,邮件,客户端 From: https://blog.csdn.net/Lzcsfg/article/details/137369741一.介绍
邮件服务器是一种用来负责电子邮件收发管理的设备。也可以实现自主构建邮件服务器比网络上的免费邮箱 更安全和高效。
邮件服务器构成了电子邮件系统的核心,每个收信人都有一个位于某个邮件服务器上的邮箱(mailbox),一个邮件消息的典型旅程是从发信人的用户代理开始,邮件发信人的邮件服务器,中转到收信人的邮件服务器,然后投递到收信人的邮箱中。
简单邮件传送协议(Simple Mail Transfer Protocol,SMTP)是因特网电子邮件系统首要的应用层协议。它使用由 TCP 提供的可靠的数据传输服务把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。
为使用户的系统域名能被正确解析为相应服务器地址,邮件服务器需要能够在互联网络上被识别和查找到。这样邮件系统才能实现邮件的投递和接收。因此邮件服务器需要对此做 DNS 设置,包括 MX 记录和 A 记录的设置。整个邮件系统包括:服务器端和客户端,服务器需要基于 SMTP 协议,客户端基于 POP3、IMAP 等协议。SMTP 监听端口为 TCP 25端口,POP3 监听端口为 110,IMAP 监听端口为143。
例如当发送一封电子邮件信息时,信息会一台服务器、一台服务器地的被传递,直到发送到收件人的电子邮件服务器。
更准确地说,信息被发送到负责传输邮件的服务器(被称为邮件传输代理 (Mail Transport Agent,MTA),经过若干 MTA 后,最终到达收件人的 MTA。在互联网上,MTA 之间使用SMTP协议进行通信,也称为SMTP 服务器。收件人的 MTA 会将电子邮件投递给邮件接收服务器(被称为邮件投递代理(Mail Delivery Agent,MDA),MDA 会保存邮件并等待用户收取。MDA 主要有两种协议:POP(Post Office Protocol)
最简单比喻就是:MTA类似邮局,而 MDA 类似信箱,MDA 存储邮件并等待收件人检查信箱。收件人不需要让发件人与收件人建立连接。为避免人们的邮件被其他人看到,MDA要验证用户名和密码才能访问。收取邮件的工作由一个叫做邮件用户代(MailUserAgent,MUA)的程序来完成。如果 MUA 是用户电脑或其他设备上的一个程序,则称它为邮件客户端(如 Mozilla Thunderbird,网易邮箱大师,foxmail,微软的 Outlook)。
POP3:
协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的 3 封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的,所以有很多同学反馈使用 foxmail 客户端配置 pop3 收取邮件的时候,有时候非常快,而使用IMAP方式,收取打开邮件非常慢。
IMAP:协议提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。
二.名称概念
Linux 平台开源免费的邮件服务器包括:Sendmail、Postfix、Qmail;
而Windows 平台主要为 Exchange 服务器 (正版需要收费)。
邮件相关名称概念理解,汇总如下:MUA: 用户代理端,即用户使用的写信、收信客户端软件;
MTA:邮件传送端,即常说的邮件服务器,用于转发、收取用户邮件。
MDA:邮件代理端,相当于 MUA 和 MTA 的中间人,可用于过滤垃圾邮件。
POP:邮局协议,用于 MUA 连接服务器收取用户邮件,通信端口 110。IMAP:互联网应用协议,功能较 POP 多,通信端口 143。
SMTP:简单邮件传送协议,MUA连接MTA 或MTA连接MTA 发送邮件使用此协议,通信端口 25。
Sendmail:
Sendmail 是一种通用的内网电子邮件路由设施,支持许多种邮件传输和投递方法,包括用于网络邮箱传输的简单邮件传输协议(SMTP)。运行方式是接受来自本地用户或其他邮件服务器的传入邮件,然后对其进行处理并将其传送到适当的目的地。它还可以处理诸如排队等待传递的消息、管理邮件别名以及实现垃圾邮件过滤和身份验证等安全功能等任务。
Postfix:
Postfix 是一个免费和开源的邮件传输代理(MTA),它负责路由和传递电子邮件.它的设计考虑到了安全性和易于管理性,使其成为 Sendmail 等旧式 MTA 的流行替代品。 Postfix 实现了高性能并行化的邮件传递引擎。通常与邮件列表软件(如 Mailman)结合使用。Postfix 的设计考虑了安全性,实现了各种功能来防止常见的电子邮件相关安全问题,例如垃圾邮件、网络钓鱼和拒绝服务攻击。
邮件发送过程包括以下步骤(root发送给lzz用户):
邮件客户端(发送邮件的源):在这种情况下,root用户将会使用邮件客户端来发送邮件。常见的邮件客户端包括命令行工具如
sendmail
,也可以使用图形化客户端如Thunderbird或Evolution。邮件传输代理(MTA):邮件客户端将邮件发送到本地或远程的邮件传输代理,MTA负责将邮件从发送者传递到接收者。在大多数Linux系统中,常用的MTA包括Sendmail、Postfix、Exim等。
本地邮件传递:如果lzz用户在同一台服务器上,邮件传输代理将直接将邮件投递到lzz用户的邮箱中。这可能涉及到系统中的本地邮件传递服务或者邮件投递代理。
远程邮件传递:如果lzz用户不在同一台服务器上,邮件传输代理将把邮件发送到lzz用户所在的远程服务器上。这个过程可能涉及到DNS解析、SMTP协议和目标服务器的MTA。
邮件接收代理(MRA):lzz用户的邮件接收代理负责接收邮件并将其投递到lzz用户的邮箱中。常见的MRA包括Dovecot、Courier等。
用户邮箱:最终,邮件将被投递到lzz用户的邮箱中,lzz用户可以使用邮件客户端来查看和处理收到的邮件。