Linux下开源邮件系统Postfix+Extmail+Extman环境部署记录
一、基础知识梳理
MUA (Mail User Agent)
MUA 既是"邮件使用者代理人",因为除非你可以直接利用类似 telnet 之类的软件登入邮件主机来主动发出信件,否则您就得要透过 MUA 来帮你送信到邮件主机上头去。 最常见的 MUA 像是 Mozilla 推出的Thunderbird ( 雷鸟 ) 自由软件, 或者是 Linux 桌面 KDE 常见的 Kmail ,及Windows 内件的 Outlook Express (OE) 等 。MUA 主要的功能就是收受邮件主机的电子邮件,以及提供用户浏览与编写邮件的功能!
MTA (Mail Transfer Agent)
MUA 帮用户传送邮件到邮件主机上,那这部邮件主机如果能够帮用户将这封信寄出去, 那它就是一部邮件传送主机 (MTA) 啦!这个 MTA 就是『邮件传送代理人』的意思。也来顾名思义一下,既然是『传送 代理人』, 那么使用者寄出的信,与使用者要收信时,就是找它 (MTA) 就对啦!基本上, MTA 的功能有这些:
1)收受信件:使用简单邮件传送协议 (SMTP)
MTA 主机最主要的功能就是将来自客户端或者是其它 MTA 的来信收下来,这个时候 MTA 使用的是 Simple Mail Transfer Protocol (SMTP) ,它使用的是25端口。
2) 转递信件
如果该封信件的目的地并不是本身用户,且该封信的相关数据符合使用 MTA 的权力, 那么MTA 就会将该封信再传送到下一部主机上。这即是所谓的转递 (Relay) 的功能。
3)响应使用者的收信要求
POP 或 IMAP 协定用户可以透过 MTA 主机提供的邮政服务协议 (Post Office Protocol, POP) 来收下自己的信件, 也可以透过IMAP (Internet Message Access Protocol) 协议将自己的信件保留在邮件主机上面, 并进一步建立邮件数据匣等进阶工作。
总之,一般提到的 Mail Server 就是 MTA !而严格来说, MTA 其实仅是指 SMTP 这个协议而已。 而达成 MTA的 SMTP 功能的主要套件包括老牌的 sendmail ,后起之秀的 postfix ,还有qmail等等。
MDA (Mail Delivery Agent)
字面上的意思是『邮件递送代理人』的意思。事实上,这个 MDA 是挂在 MTA 底下的一个小程序, 最主要的功能就是: 分析由 MTA 所收到的信件表头或内容等数据, 来决定这封邮件的去向。 所以说,上面提到的MTA 的信件转递功能,其实是由 MDA 达成的。 举例来说,如果 MTA 所收到的这封信目标是自己,那么MDA 会将这封信给它转到使用者的信箱 (Mailbox) 去, 如果不是呢?那就准备要转递出去了。此外, MDA 还有分析与过滤邮件等功能喔!如:过滤垃圾邮件,自动回复,自动转发等……。
各主要的 MTA 程序 (sendmail,postfix...) 都有自己的 MDA 功能,不过有些外挂的程序功能更强大, 举例来说 procmail就是一个过滤的好帮手,另外 Mailscanner + Spamassassion 也是可以使用的一些 MDA 喔。
Mailbox
就是电子邮件信箱!简单的说,就是某个账号专用的信件收受档案。我们的 Linux 系统默认的信箱都是放在 /var/spool/mail/ 使用者账号 中! 若 MTA 所收到的信件是本机的使用者, MDA 就会将信件送到该 mailbox 当中去!
POP3
(Post Office Protocol 3)即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。
IMAP
Interactive Mail Access Protocol(交互式邮件存取协议)是由美国华盛顿大学所研发的一种邮件获取协议。它的主要作用是邮件客户端(例如MS Outlook Express)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。无论是POP3还是IMAP都是描述如何从邮箱取出邮件。
请注意:POP3/IMAP和SMTP可以组建在不同的服务器上,经常使用MUA的用户肯定记得软件的设置中经常将POP3/IMAP和SMTP进行分开设置。
——————————SMTP、POP3、IPMAP三者说明——————————
|
|
网易163免费邮箱相关服务器信息:
Maildirs
Maildirs是使用非常广泛的e-mail邮件存储格式。也可以说是一种基于目录的邮件存储格式。它在添加,移动或删除时并不依赖于应用程序级的文件锁定来维护消息的完成性。每一个消息(每一封邮件)被保存在一个独立的且名称唯一的文件中。所有的更改均使用基于文件系统的原子操作(atomic filesystem operations )因此文件系统来控制文件锁定从而避免一致性问题。通常Maildir为一个目录(名称为Maildir)其下包含三个子目录,分别为tmp,new和cur。
Courier IMAP
Courier IMAP server 是使用Maildir存储格式的高速,可扩展,企业级 IMAP 服务器。许多E-mail提供商使用Courier IMAP server来处理几十万的邮件用户,使用它建立IMAP和POP3集合代理,可以说Courier IMAP server 简直具有无限的水平扩展能力。在代理配置环境中,一些Courier 服务器提供IMAP和POP3服务,它们等待客户端登陆请求,查找并操作邮件用户的mailbox,与服务器建立代理连接,所有的这些操作都在一个单独的,无缝连接的进程中。
Courier-IMAP主要特点:
- 小巧而高效;
- 提供多种用户认证模块和方式;
- 支持虚拟邮箱;
- 可限制IMAP同时登录的总数目及同一个IP地址同时登录的数目,能有效保护系统在受到拒绝服务(Denial-of-service)攻击时不致因超载而瘫痪;
maildrop
具有过滤功能的邮件投递代理(MDA)。
Courier-Authlib
Courier authentication library 为其他 Courier 应用程序提供验证服务。
SASL
SASL的英文全称是Simple Authentication and Security Layer,即简单验证和安全层。SMTP 协议并没有提供用户验证功能,很容易匿名中转邮件。即使限制了可以转发的网段,也不安全。他的定义是: a method for adding authentication support to connection-based protocols,为基于连接的协议提供认证功能。SASL是一个胶合(glue)库,通过这个库把应用层 与 形式多样的认证系统整合在一起。这有点类似于PAM,但是后者是认证方式,决定什么人可以访问什么服务,而SASL是认证过程,侧重于信任建立过程,这个过程可以调用PAM来建立信任关系。
Open-Relay是什么?
Open-Relay(开放转发或匿名转发)是指由于邮件服务器不理会邮件发送者或邮件接受者的是否为系统所设定的用户,而对所有的入站邮件一律进行转发(RELAY)的功能。通常,若邮件服务器的此功能开放,则我们一般称此邮件服务器是Open-Relay的。
由于Internet E-mail采用开放式标准,所以MTA、MDA、MUA等不同角色,可分别由许多不同的软件包来扮演。实现相同协议的不同包,可以彼此互相交流,而不管它们是在什么系统上运行。如果将一个完整的E-mail邮件系统集中在一起,可以发现的是处理SMTP的是一套软件,处理POP/IMAP的是另一套软件。但邮件系统中的每一种角色,都有许多不同的软件可以选择。
二、Postfix+Extmail+Extman环境部署过程
1)基础环境准备
|
2)软件下载
|
3)LAMP环境安装
安装文档:Centos6.8下编译安装LAMP的操作记录梳理 - 散尽浮华 - 博客园
|
4)Mysql安装
安装文档:CentOS6 下以源码方式安装 MySQL 记录 - 散尽浮华 - 博客园
mysql一键安装脚本下载地址:百度网盘 请输入提取码 提取密码:bhcw
|
5)创建相关用户
|
6)卸载系统中相关软件
|
7)配置相关系统环境
8)创建相应目录
|
9)安装必要组件
|
10)安装配置courier-authlib
|
11)安装/配置Cyrus-SASL2
|
12)Postfix安装/配置
|
13)安装/配置 courier-imap
|
14)安装配置maildrop
|
15)安装extmail与extman
|
16)测试extmail/extman
解析mail.kevin.com到192.168.10.202机器上(或做hosts绑定),访问http://mail.kevin.com/extmail/,如下图所示,注意选择的是"登录邮箱管理"这一项,进入邮箱管理后台界面。默认用户名和密码分别是root@kevin.com和extmail*123*
如果忘记了管理员密码,则使用下面命令密码重新修改为"extmail*123*"的初始默认密码!
|
登录的时候,可能会有报错,总结如下:
|
登录邮箱后台后,可以进行添加用户、添加管理员、修改管理员信息、添加别名、邮箱限额、网盘限额、禁止用户自由注册(在"域列表"中选中kevin.com进行修改)等操作。
特别注意:
用户创建完成后查看/var/mailbox/目录下是否自动创建了kevin.com/wangshibo目录。如果没有生成这个用户目录,说明创建用户的时候没有自动生成目录,这种情况大多是因为权限不对。通过查看apache的日志排错。同时将/var/mailbox的权限设置为700 所有者设置为 vmail。
|
启动图形日志服务测试(不做下面一步,后台里的“图像日志”将不会显示图片)
|
登录查看,是否出图:
使用管理后台里创建的用户(比如上面的wangshibo)登录网页版邮箱。注意登录时,选中"登录邮箱"这一选项:
17)cyrus-sasl +courier-authlib+ postfix+ courier-imap+ maildrop联合配置与调试
完善配置postfix。本例中的main.cf文件下载地址:https://pan.baidu.com/s/176QEclvdvYtG37uQrW_yJg 提取密码:qi8i main.cf文件一定要配置正确,否则邮件收发都会出现问题!
|
验证courier-authlib认证
|
测试SMTP认证
|
测试POP3
|
登录extman管理后台,多创建几个基于kevin.com域名的邮箱,相互之间就能正常收发邮件了!
18)通过MUA测试收发邮件
本次MUA软件使用Foxmail,测试用户为wangshibo@kevin.com。需要注意的是:kevin.com邮箱域名解析时,解析要包括:mail、smtp、pop3、imap的A记录以及MX记录。
打开Foxmail客户端,创建新账号,如下图:
===============针对外部邮箱收发邮件的设置=================
|
19)邮件发垃圾和反病毒
杀毒软件
|
邮件病毒扫描与垃圾邮件过滤
|
测试Clamav
|
最终测试
|
20)启动服务项及进程整理
|
21)邮件服务器压力测试-利用Postal工具
|
================登录extman的时候,报错===============
|