每天我们都会收到很多的邮件,但是从来没有了解过邮件是怎么实现收发的,也没有自己配置过一台邮件服务器。

今天我们就来认识一下什么是邮件服务器。

常见的邮件服务器软件介绍

Sendmail:sendmail 是最古老的 MTA(Mail Transfer Agent,电子邮件系统)之一,最早它诞生的时候,Internet 还没有被标准化,当时主机之间使用的是 UUCP 技术来交换邮件。它被设计得比较灵活,便于配置和运行于各种类型的机器。
Qmail:qmail 是新生一代的 MTA 代表,它以速度快、体积小、易配置安装等特性而著称。作者 D.J.Bernstein 是一个数学教授,富有传奇色彩。他于 1995 年开发 qmail,1996 年发布 0.70 版,并使用了多种当时比较先进的 技术,包括 Maildir,与 sendmail 单个 binary 不同的模块化设计,权限分离,以及使用了大量由他编写的配套工具,如 daemontool,ucsip-tcp 等。qmai  迅速成为了 Internet 上最有名的  MTA,使用者众。
postfix:postfix  如今已经独树一帜,流水线、模块化的设计,兼顾了效率和功能。灵活的配置和扩展,使得配置 postfix 变得富有趣味。其主要的特点是速度快、稳定,而且配置/功能非常强大,并和 sendmail 类似,提供了与外部程序对接的 API/protocol。尤其是配置部分,postfix 另一个优势是至今依然保持活跃的开发工作,而且稳步发展,适合高流量大负载的系统,扩充能力较强。本实验也是基于 postfix 服务器软件来实现。

邮件服务器原理介绍

下面我们将会学习邮件服务器原理。

邮件服务器基本的工作原理

  • MUA(Mail User Agent):向外发送邮件,以及提供用户浏览与编写邮件的功能。
  • MTA(Mail Transfer Agent):(可以理解为 smtpd 服务器)帮忙将用户的邮件传递出去或接收进来。
  • MDA(Mail Delivery Agent):将接收下来的邮件存放到对应用户邮筒当中的程序。通过分析 MTA
    所收到邮件的表头或内容,来判断此邮件是属于哪个用户,然后决定将此邮件投递给哪个用户的邮筒里。
  • MRA(Mail Retrieval Agent):通过 MRA 服务器提供的邮政服务协议(POP)来接收自己的邮件。

用户(MUA)通过 SMTP 协议将邮件发送到服务器(MTA),服务器分解发现如果是本地的邮件传输则通过 lmtp 来传送,如果是远程邮件将调用本地的客户端使用 SMTP 协议向对方服务器传送。

当对方的服务器接收到邮件之后,发现如果不是本机所负责的域,则将邮件交给本机的邮件客户端,根据邮件目标域请求 DNS 解析,将邮件发送到目标服务器,或者丢至下一跳此过程称为邮件中继,如果发现是本机负责区域内的用户,则 SMTPD 将邮件转交给 MDA,由 MDA 把邮件传递到用户的邮筒。

用户通过 MUA 查看邮件的时候,会将邮件从邮筒拉到用户家目录,保存为 mbox 的文件。

邮件中继:

  • SMTPD 要支持邮件路由功能,需要打开 Open Relay 开放式中继。
  • SMTPD 是根据收件人判断邮件是否需要中继,而且只给指定的客户端中继。

邮件服务器与 DNS 之间的关系


关于  DNS  的介绍和  DNS  服务器的配置可以查看《Linux 系统搭建及配置 DNS 服务器》。

  1. 当发件方需要发送邮件给对方邮件服务器,需要向 DNS 请求查询对方邮件服务器的 MX 记录。
  2. DNS 通过查询 MX 表信息。
  3. 将查询到的 MX 信息返回给发送方。
  4. 发送方根据优先级,将邮件投递给对方优先级高的邮件服务器(mail1)。
  5. 如果主邮件服务器过于繁忙,或者不在线的时候,会将邮件投递给辅的邮件交换器(mail2)上。
  6. 待主邮件服交换器空闲下来后,mail2 会将代替接收下来的邮件再转给主邮件交换器(mail1)。

**注:**当 DNS 上存在多个 MX 记录的主机这时就是根据 DNS 的邮件级判断了。DNS 上定义的值越小,其优先级越高。辅助交换器接受到邮件并不能保存邮件。而是这个辅助交换器会等到主邮件交换器空闲的时候把代替它接受下来的邮件在转给主邮件交换器。所以任何邮件处理都是主邮件交换器处理的。所以我们实际情况下,如果有 2 台服务器做邮件交换器,性能比较高的应该为主的。

参考资料

如果你觉得这篇文章有用的话就点一个赞吧!
关注我,收获更多编程知识和实用干货!

「干货」什么Linux是邮件服务器?相关推荐

  1. 怎样对流媒体进行压力测试_对node工程进行压力测试与性能分析「干货」

    作者:小黎 转发链接:https://mp.weixin.qq.com/s/WBe7ZLoqFD9UqNusnv_IDA 前言 在系统上线前,为了看下系统能承受多大的并发和并发下的负载情况,常常会先进 ...

  2. 「干货」橙留香博客导读:专栏系统分类和博客归纳总结

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 0x01 前言 为了更好地帮助博友同学学习作者同学的博客,方 ...

  3. 用typescript完成倒计时_「干货」将数十万行CoffeeScript代码迁移到TypeScript

    作者 | David Goldstein 译者 | 王强 策划 | 小智 转发链接:https://mp.weixin.qq.com/s/TK7kWXX4hR3e-jtpVMuBnw 序言 2017 ...

  4. linux 企业邮件服务器_什么是Linux服务器,为什么您的企业需要一个?

    linux 企业邮件服务器 IT组织努力通过提高生产率和提供服务的速度来交付业务价值,同时保持足够的灵活性以结合云,容器和配置自动化等创新技术. 无论是在裸机,虚拟机,容器,私有云还是公共云上运行的现 ...

  5. 110配线架打法图解_「干货」图文并茂教会你110语音配线架线缆打法

    原标题:「干货」图文并茂教会你110语音配线架线缆打法 110语音配线架是机房工程中常用的语音配线工具,下面我们就来看下110配线架是如何安装的,以安装25对大对数为例. 110语音配线架 (1)将配 ...

  6. 计算机二级的Word知识点,计算机二级word知识点「干货」

    计算机网络的分类与的一般的事物分类方法一样,可以按事物的所具有的不同性质特点即事物的属性分类.yjbys小编下面整理一些计算机二级word知识点,希望大家认真阅读! Word软件考核的重点内容为:正文 ...

  7. linux系统搭建局域网邮件,Linux局域网邮件服务器搭建

    随着企业信息化的普及,国内大部分企事业单位都有属于自己的局域网邮件服务器,如何在Linux局域网内搭建邮件服务器,实现邮件的收发.我们就给大家介绍一下怎样用U-Mail邮件服务器软件来搭建局域网邮件服 ...

  8. 每个程序员都可以「懂」一点 Linux

    点击上方"马蜂窝技术",关注订阅更多优质内容 提到 Linux,作为程序员来说一定都不陌生.但如果说到「懂」Linux,可能就没有那么多人有把握了.到底用 Linux 离懂 Lin ...

  9. php邮件服务器搭建,如何快速简单的使用Linux搭建邮件服务器

    本篇文章给大家带来的内容是关于如何快速简单的使用Linux搭建邮件服务器,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 搭建邮件服务器,过程非常简单,只需几个步骤即可. 通常在Lin ...

最新文章

  1. Swift3.0语言教程使用字符串创建和初始化字符串
  2. Python Module_openpyxl_处理Excel表格
  3. 软件测试的学习之路----计算机基础 (图片展示)
  4. JSP中include指令和include动作的区别
  5. 动物之美计算机教案,清华大学版六年级上册信息技术教案第三课 动物之美——图像分类管理.pdf...
  6. 智能优化算法:果蝇优化算法-附代码
  7. 图论的应用 计算机,图论的应用计算机技术与科学毕业论文.doc
  8. vagrant up default: Warning: Authentication failure. Retrying...的一些解决办法(转自myx的博客)
  9. Linux沙箱技术简介
  10. MySQL实战宝典 高可用架构篇 17 高可用设计三大高可用设计架构方案
  11. 奥西450的服务器系统,奥西TDS450驱动
  12. 发那科syst178_南京发那科机器人示教器维修芯片级维修{苏州机器人维修}
  13. pdf太大怎么压缩大小?
  14. 喜欢游戏学计算机,我喜欢电脑游戏小学作文
  15. Qt编写带频谱的音乐播放器
  16. OSI TCP/IP
  17. bpm java_bpm完全解读
  18. 魔鱼发布瓦尔基里高清版,支持全新iPad视网膜显示
  19. logrotate测试_logrotate 日志管理
  20. 大数据在职研究生哪个好_哪些人适合报考2019年大数据在职研究生

热门文章

  1. NOIP 2017 时间复杂度 (模拟)
  2. spring-security权限控制详解
  3. 谈谈cookie的弊端
  4. 赣南师范学院数学竞赛培训第02套模拟试卷参考解答
  5. UITabbarController 实例一
  6. ASP.NET2.0中配置文件的加密与解密
  7. 动态规划--凸多边形最优三角剖分
  8. 【Core】当前 .NET SDK 不支持将 .NET Core 2.2 设置为目标。请将 .NET Core 2.1 或更低版本设置...
  9. Python用起来极度舒适的强大背后
  10. php 栈、 出栈、入栈