简介

postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封邮件。这真是一个让人吃惊的数字。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。

工作原理

10分钟教你搭建邮件服务器Postfix(RPM包安装)

客户端通过Outlook软件,向邮件服务器发送一封邮件,邮件服务器会检查是发往本域?还是发往其他域?
1、如果发送到本域,直接存放到Mailbox中,另外一个用户上线,需要收取这封邮件,需要借助dovecot(dovecot提供的是MRA的功能)软件,通过dovecot进入数据库验证身份,验证通过以后,就可以通过MRA调用POP3或者IMAP4的协议,进入邮箱收取邮件,并且将邮件转发给用户
2、如果发送到其他域,其他MTA。但是转发之前,验证用户身份,是否要为其转发邮件,验证的时候是用到了SASL函数库,用户的信息是放到了数据库中,此时我们需要一个中间层authlib,通过authlib替SASL函数库向数据库进行验证,做“发信认证”,认证通过,允许转发,验证不通过,拒绝转发
3、通过浏览器访问邮件服务器(EXtmall),转发到其他域,放到邮箱,到数据库验证

邮件系统角色

MUA:邮件用户代理(客户端 例如微软邮件客户端)
MTA:邮件传输代理(服务器端 postfix)
MDA:邮件分发代理分发邮件(至mialbox中)
MRA:邮件检索代理

邮件应用协议

1、SMTP,简单邮件传输协议,TCP,25端口,加密时使用TCP,465端口(发送邮件)客户端向其他服务器发送邮件或者服务器向其他服务器转发邮件,发送方使用的都是SMTP协议
2、POP3,第3版邮局协议, TCP 110端口,加密时使用TCP 995端口[收邮件 收取邮件的时候,先将服务器的邮件下载到本地,所有的操作都是在本地完成
3、IMAP4,第4版互联网消息访问协议,TCP 143端口,机密时使用993端口(比POP3灵活)接收邮件,客户端和服务器端交互了以后,在服务器端处理,好处能实现更多的功能,例如查看邮件的信息,但是消耗的系统的资越高

实验环境

系统环境:centos6.5
LinuxIP地址:192.168.1.77
yum挂载目录:/mnt/sr0
DNS域名:bt.com.

搭建步骤:

一、指定DNS,实现邮件交换记录

1、安装DNS

[root@redhat6 ~]# cd /mnt/sr0/Packages/
[root@redhat6 Packages]# rpm -ivh bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm #安装DNS服务器主包

2、修改DNS配置文件

[root@redhat6 ~]# vim /etc/named.conf #修改DNS服务器文件
10分钟教你搭建邮件服务器Postfix(RPM包安装)

3、创建并修改DNS正向解析文件

[root@redhat6 ~]# cd /var/named/
[root@redhat6 named]# cp -p named.localhost bt.com.zone #将模板文件改为正向解析文件进行修改
[root@redhat6 ~]# vim /var/named/bt.com.zone # 修改正向解析文件
10分钟教你搭建邮件服务器Postfix(RPM包安装)

4、测试DNS解析

[root@redhat6 ~]# nslookup mail.bt.com #nslookup 用于查询DNS的记录,查看域名解析是否正常
10分钟教你搭建邮件服务器Postfix(RPM包安装)

二、安装邮箱服务

1、安装postfix

[root@redhat6 ~]# cd /mnt/sr0/Packages/
[root@redhat6 Packages]# rpm -ivh postfix-2.6.6-2.2.el6_1.x86_64.rpm #安装postfix主包

2、修改postfix修改配置文件

[root@redhat6 ~]# vim /etc/postfix/main.cf

添加修改以下参数:
inet_interfaces = all //监听服务的IP地址,有一个默认localhost,修改时候注意下,别忘记
myhostname = mail.bt.com //邮件服务器主机名
mydomain = bt.com //邮件域名
myorigin = $mydomain //发件人地址邮件域名
mydestination = $mydomain, $myhostname //收件人地址邮件域名
home_mailbox = Maildir/ //邮件存放位置

3、启动服务

[root@redhat6 ~]# /etc/init.d/postfix start

三、安装邮箱收件服务

1、安装dovecot插件

[root@redhat6 ~]# cd /mnt/sr0/Packages/
[root@redhat6 Packages]# rpm -ivh dovecot-2.0.9-7.el6.x86_64.rpm

2、修改配置文件

[root@redhat6 ~]# vim /etc/dovecot/dovecot.conf
10分钟教你搭建邮件服务器Postfix(RPM包安装)

10分钟教你搭建邮件服务器Postfix(RPM包安装)

[root@redhat6 ~]# vim /etc/dovecot/conf.d/10-mail.conf
10分钟教你搭建邮件服务器Postfix(RPM包安装)

[root@redhat6 ~]# service dovecot start

3、添加邮箱测试用户

[root@redhat6 ~]# groupadd mailusers #添加组
[root@redhat6 ~]# useradd -g mailusers -s /sbin/nologin zhangsan #添加张三用户
[root@redhat6 ~]# passwd zhangsan
[root@redhat6 ~]# useradd -g mailusers -s /sbin/nologin lisi #添加李四用户
[root@redhat6 ~]# passwd lisi

四、测试收发邮件

1、安装telent客户端

[root@redhat6 Packages]# rpm -ivh telnet-0.17-47.el6_3.1.x86_64.rpm #安装telent客户端服务,通过telent命令连接25端口进行测试。

2、zhangsan用户发送邮件给lisi

[root@redhat6 ~]# telnet 192.168.1.77 25
10分钟教你搭建邮件服务器Postfix(RPM包安装)

3、lisi用户接收邮件
[root@redhat6 ~]# telnet mail.bt.com 110
10分钟教你搭建邮件服务器Postfix(RPM包安装)