1. Postfix 1.1 邮件服务的介绍
电子邮件是—种用电子手段提供信息交换的通信方式,是互联网应用最广的服务。通过网络的电子邮件系统,用户可以以非常低廉的价格(不管发送到哪里,都只需负担网费)、非常快速的方式(几秒钟之内可以发送到世界上任何指定的目的地),与世界上任何一个角落的网络用户联系。
电子邮件可以是文字、图像、声音等多种形式。同时,用户可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。电子邮件的存在极大地方便了人与人之间的沟通与交流,促进了社会的发展。
什么是电子邮件系统
电子邮件系统是一种能够书写、发送、存储和接收信件的电子通信系统
邮件系统由两部分组成
MTA(邮件传输代理)
MUA(邮件用户代理)
1.2 电子邮件收发的过程 1.3 邮件传输过程(1)客户机调用用户代理来编辑要发送的邮件。用户代理用SMTP将邮件传送给发送端邮件服务器
(2)发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。
(3)SMTP按照C/S方式工作。运行在发送端邮件服务器的SMTP客户进程,发现在邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的SMTP服务器进程发起TCP连接的建立
(4)当TCP连接建立后,SMTP客户进程开始向远程的SMTP服务器发送邮件。如果有多个邮件在邮件缓存中,则SMTP客户一一将它们发送到远程的SMTP服务器。当所有的待发送邮件发完了,SMTP就关闭所建立的TCP连接
(5)运行在接收端邮件服务器中的SMTP服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在他方便时进行读取
(6)收信人调用用户代理,使用POP3(或IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中取回
1.4 电子邮件的协议1. SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),是电子邮件的发送方向接收方传递邮件时使用的单向传输协议,默认使用TCP端口为25。配置了SMTP协议的电子邮件服务器称为SMTP服务器。SMTP服务器接收客户机发送的电子邮件,向其他的SMTP服务器发送电子邮件,但不能从别的SMTP服务器接收电子邮件
2. POP3(Post Office Protocol Version 3,邮局协议,版本3),是电子邮件接收方向电子邮局发出接收邮件请求时使用的单向传输协议,默认使用TCP端口为110。配置了POP3协议的电子邮件服务器称为POP3服务器。POP3服务器将电子邮件发送给客户机或者从别的POP3服务器接收电子邮件,但不能向别的POP3邮件服务器发送电子邮件
1.5 Postfix 的介绍Postfix 是一种电子邮件服务器,它是由任职于IBM华生研究中心(T.J. Watson Research Center)的荷兰籍研究员Wietse Venema为了改良sendmail邮件服务器而产生的。
postfix由十几个具有不同功能的半驻留进程组成,并且在这些进程中并无特定的进程间父子关系。某一个特定的进程可以为其他进程提供特定的服务。
大多数的postfix进程由一个进程统一进行管理,该进程负责在需要的时候调用其他进程,这个管理进程就是master进程。该进程也是一个后台程序。
这些postfix进程是可以配置的,我们可以配置每个进程运行的数目,可重用的次数,生存的时间等等。通过灵活的配置特性可以使整个系统的运行成本大大降低。
1.6 Postfix 特点1、postfix是免费的;
2、性能好,大约比sendmail×××倍,一台运行postfix的台式pc每天可收发上百万邮件;
3、兼容sendmail
4、健壮稳定,postfix被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时,postfix会自动减少运行进程的数目。当处理的邮件数目增长时,postfix运行的进程不会跟着增加;
5、灵活性好,postfix是由超过一打的小程序组成的,每个程序完成特定的功能。你可以通过配置文件设置每个程序的运行参数。
6、安全性,postfix具有多层防御结构,可以有效地抵御恶意者,可以运行在较低的权限之下;
1.7 部署Postfix 1.7.1 环境准备OS版本:CentOS 7.5 64bit
mail-server ip :192.168.1.242
mial-client ip :192.168.1.200
[root@mail-server ~]# cat /etc/RedHat-release #查看系统版本
[root@mail-server ~]# uname -r #查看内核版本
[root@mail-server ~]# systemctl stop ebtables firewalld #关闭ebtables防火墙
[root@mail-server ~]# systemctl disable ebtables firewalld #重启不启动ebtables firewall防火墙
[root@mail-server ~]# vim /etc/sysconfig/selinux #设置selinux 状态为disabled
[root@mail-server ~]# setenforce 0 # 临时将selinux设置为disabled
[root@mail-server ~]# getenforce #检测selinux是否关闭
[root@mail-server ~]# ifconfig ens33 |awk -F '[ :]+' 'NR==2{print $3}' #查看IP地址
[root@mail-server ~]# hostname #查看主机名
1.7.2 配置DNS解析
1.安装bind服务
[root@mail-server ~]# yum -y install bind
2.编辑bing的主配置文件
[root@mail-server ~]# vim /etc/named.conf
[root@mail-server ~]# vim /etc/named.rfc1912.zones
3.添加mail邮件解析记录
[root@mail-server ~]# vim /var/named/vancen.com.zone
4.重启DNS服务
[root@mail-server ~]# systemctl restart named
[root@mail-server ~]# systemctl enable named
[root@mail-server ~]# systemctl status named
1.7.3 配置Postfix服务程序1. 安装postfix软件
[root@mail-server ~]# yum -y install postfix
2. 修改配置文件
[root@mail-server ~]# vim /etc/postfix/main.cf
76 myhostname = mail.vancen.com
83 mydomain = vancen.com
99 myorigin = $mydomain
116 inet_interfaces = all
164 mydestination = $myhostname , $mydomain
3. 重启服务
[root@mail-server ~]# systemctl restart postfix
[root@mail-server ~]# systemctl enable postfix
[root@mail-server ~]# systemctl status postfix
4. 创建邮件账户
Postfix可以调用本地系统的账户和密码,因此在本地系统创建常规账户即可。
[root@mail-server ~]# useradd chenjf
[root@mail-server ~]# echo "chenjf" | passwd --stdin chenjf
1.7.4 配置Dovecot服务程序1. 安装Dovecot服务程序软件包。
[root@mail-server ~]# yum -y install dovecot
2. 配置部署Dovecot服务程序。
[root@mail-server ~]# vim /etc/dovecot/dovecot.conf