linux入门系列17–邮件系统之Postfix和Dovecot

前文演示了通过Samba和NFS实现文件共享,本篇演示使用Postfix和Dovecot在局域网实现电子邮件收发系统。

电子邮件系统是我们日常生活和工作中非常重要的一个网络服务,在windows下收发电子邮件系统工具很多,相信大家一定接触过,比如qq邮箱、163邮箱等等。本文讲解在Linux下通过部署Postfix和Dovecot来实现电子邮件的收发。

一、电子邮件系统前世今生

1.1 产生背景

大家今天熟知的互联网起源于美国的ARPANET科研项目,这是20世纪60年代美国国防部发起的科研项目。阿帕网是当今互联网的雏形,它也是世界上第一个运营的封包交换网络。

在阿帕网发展几年之后,到1971年遇到了严峻的问题,当时参与该项目的科学家分布在美国的不同地区,并且不同地区存在时差,这就导致了不能及时分享各自的科研成功,因此需要一种能够借助网络在计算机之间传输数据的方法。

看到这里估计很多同学懵圈了,前文不是才讲了ftp文件传输以及文件共享吗?是的,他们虽然可以实现文件的传输,但是使用场景却不一样,他们就像打电话一样,需要服务器和客户端同时在线才能完成数据传输。手机上的语音信箱相信大家用过吧?邮件系统就类似语音信箱,即使你手机没电或关机了,等你再次开机的时候,你仍然可以第一时间收到语音留言。

基于这种背景,当时参与阿帕网项目的成员中有一位来自麻省理工大学的教授,用了近一年时间完成了电子邮件的设计,在1971年秋通过sndmsg软件向自己的另外一台计算机发出了人类历史上第一封电子邮件。

1.2 电子邮件相关概念

1.2.1 电子邮件地址

就像平时收发快递一样,电子邮件要准确发送给他人,那就需要对方提供明确唯一的收件地址。设计者规定电子信箱格式为“姓名@计算机主机名称”,它选择@符号作为间隔符的原因是,设计者认为人类的额名字和计算机主机名字中应该不会包含@这个特殊字符。

这很好理解,比如我们平时见到的邮箱:xxxx@qq.com、xxx@163.com等等。

1.2.2 电子邮件协议

电子邮件系统基于邮件协议来完成电子邮件的传输,常见邮件协议有:SMTP、POP3、IMAP4等。

SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,用于发送和中转发出的电子邮件,占用TCP端口25。

POP3(Post Office Protocol 3):邮局协议版本3,用于将电子邮件存储到本地主机,占用TCP端口110。

IMAP4(Internet Message Access Protocol 4):Internet消息访问协议版本4,用于在本地主 机上访问邮件,占用TCP端口143。

1.2.3 电子邮件传输过程

电子邮件在传输过程中涉及到几个角色:MUA、MTA、MDA

MUA(Mail User Agent):邮件用户代理,作用是替用户收发邮件的服务器。

MTA(Mail Transfer Agent):邮件传输代理,作用是转发处理不同电子邮件服务供应商之间的邮件,把来自于 MUA 的邮件转发到合适的 MTA 服务器。

MDA(Mail Delivery Agent):邮件投递代理,作用是把来自于MTA的邮件保存到本地的收件箱中。

举个例子,假设你用一个新浪信箱给一个谷歌信箱发送一封电子邮件,其传输过程如下图:

如前所述,电子邮件系统不同于文件传输需要双方同时保持在线,当用户发送邮件后,无需等待投递工作完成就可以下线。上图中假设如果对方邮件服务器(谷歌的MTA)宕机或离线,则发件服务器(新浪的MTA)就会把要发送的内容自动暂时保存到他本地,等检测到对方邮件服务器恢复后再次投放,随后收件人(MUA)就能在自己的邮箱中找到这封邮件了。

1.2.4 Linux下电子邮件收发程序

一个最基础的电子邮件系统至少要能提供发件服务和收件服务。在Linux下使用基于SMTP协议的Postfix服务程序来提供发件服务功能,使用基于POP3协议的Dovecot服务程序提供收件服务功能。部署Postfix和Dovecot服务程序后,就可以使用邮件客户端(如Foxmail、Outlook等)进行收发邮件。

在RHEL5、6及早期的Linux系统中,默认的发件服务是Sendmail,在RHEL7系统中替换成了Postfix。相对而言Postfix在稳定性、并发性方面有了很大改进,并且减少了很多不必要的配置步骤,使用更简单。

二、Linux局域网部署电子邮件系统

2.1 准备工作

2.1.0 主机规划及邮件系统架构

(1)主机及网络规划

开始之前我们邮件系统规划如下:

主机名称操作系统IP地址电子邮件系统及DNS服务器Centos7192.168.0.101客户端主机(outlook)win7192.168.0.111客户端主机(foxmail)win10192.168.0.112

域名采用http://heimatengyun.com (由于此演示是在局域网,自己单击DNS服务器,因此域名可以任意写一个)

Centos7是虚拟机,win10是虚拟机的宿主机,win7是另外一台物理机,他们之间组成一个局域网。虚拟机centos7作为电子邮件系统以及DNS服务器,设置其网络模式为:桥接模式,目的是直连主机物理网络,以此构成一个局域网。

(2)电子邮件系统基础架构

如1.2.4所述,我们采用Postfix和Dovecot来搭建一个基础的电子邮件系统,其工作流程如下:

通常情况下,我们的邮箱地址看起来应该形如:test@heimatengyun.com 也就是按照“用户名@主机地址或域名”的格式来进行规范。

为了提高可读性不直接采用形如:test@192.168.0.1这种ip地址的形式。这种ip地址的方式一是因为不容易记住,另外还容易产生误解(看起来有点像SSH远程连接的地址),因此我们还需要先部署bind服务程序来为电子邮件服务器和客户端提供NDS域名解析服务。

下边就来演示下bind服务程序的配置及管理

2.1.1 配置服务器主机名称

需要保证centos服务器主机名称与发信域名保持一致

[root@email ~]# hostnamectl set-hostname mail.heimatengyun.com
[root@email ~]# hostname
mail.heimatengyun.com
[root@mail ~]# cat /etc/hostname
mail.heimatengyun.com
[root@mail ~]#

<< · Back Index ·>>

发表回复

相关推荐

世界上真的有神吗?

以前释迦摩尼说:“天上地下,唯我独尊”,现在,我想说,在座所有人都可以说这句话,为什么?因为你我就是天道,就是唯一。

· 2分钟前

2020秋 人教版初中英语七年级上册教材电子课本(高清更新可打印)

为了帮助学生提前进行上册教材的预习,帮助老师们节省时间,帮助家长有效辅导,我们精心整理了各教材电子课本高清电子版。

· 5分钟前

粤语学习APP大全

一直对粤语学习感兴趣,但是听不懂也不会说,终于决定开始学习了,看电视和视频都感觉兴趣不大,重点是自己不开口,跟哑巴英 ...

· 8分钟前

万宝龙146 14c/14k/T舌/现产 F尖找不同

这次文章的内容主要是对比一下几支不同年代146,看看他们之间有什么不同,年代从远到近分别是14C、14k、T舌、现产(P146), ...

· 8分钟前

史上最全股票和基金工具网站推荐:找资讯、逛论坛,看财报、查数据……

工欲善其事,必先利其器。 周末趁著闲暇,给大家整理了一份股票、基投资找工具网站。 看行情、找资讯、逛论坛,看财报、看研 ...

· 11分钟前