邮件系统之Postfix与Dovecot
电子邮件系统
电子邮件系统基于邮件协议来完成电子邮件的传输,常见的邮件协议有:
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP):用于发送和中转发出的电子邮件,占用服务器的25/TCP端口。 邮局协议版本3(Post Office Protocol 3):用于将电子邮件存储到本地主机,占用服务器的110/TCP端口。 Internet消息访问协议版本4(Internet Message Access Protocol 4):用于在本地主机上访问邮件,占用服务器的143/TCP端口。
在电子邮件系统中,为用户收发邮件的服务器名为邮件用户代理(Mail User Agent,MUA)。另外,既然电子邮件系统能够让用户在离线的情况下依然可以完成数据的接收,肯定得有一个用于保存用户邮件的“信箱”服务器,
这个服务器的名字为邮件投递代理(Mail Delivery Agent,MDA),其工作职责是把来自于邮件传输代理(Mail Transfer Agent,MTA)的邮件保存到本地的收件箱中。其中,这个MTA的工作职责是转发处理不同电子邮件服务供应商之间的邮件,
把来自于MUA的邮件转发到合适的MTA服务器。例如,我们从新浪信箱向谷歌信箱发送一封电子邮件,这封电子邮件的传输过程如下图所示:
部署基础的电子邮件系统:
一个最基础的电子邮件系统肯定要能提供发件服务和收件服务,为此需要使用基于SMTP协议的Postfix服务程序提供发件服务功能,并使用基于POP3协议的Dovecot服务程序提供收件服务功能。
这样一来,用户就可以使用Outlook Express或Foxmail等客户端服务程序正常收发邮件了。电子邮件系统的工作流程如下图所示:
第1步:配置服务器主机名称,需要保证服务器主机名称与发信域名保持一致:
[root@zhangjh ~]# vim /etc/hostname mail.jianghua.com [root@zhangjh ~]# hostname mail.jianghua.com
第2步:清空iptables防火墙默认策略,并保存策略状态,避免因防火墙中默认存在的策略阻止了客户端DNS解析域名及收发邮件:
[root@zhangjh ~]# iptables -F [root@zhangjh ~]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
第3步:为电子邮件系统提供域名解析:
[root@zhangjh ~]# vim /etc/named.conf options { listen-on port 53 { any; }; #修改为any listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; #修改为any
[root@zhangjh ~]# vim /etc/named.rfc1912.zones zone "jianghua.com" IN { type master; file "jianghua.com.zone"; allow-update {none;}; };
[root@zhangjh ~]# vim /var/named/jianghua.com.zone $TTL 1D @ IN SOA jianghua.com. root.jianghua.com. ( 0;serial 1D;refresh 1H;retry 1W;expire 3H);minimum NS ns.jianghua.com. ns IN A 192.168.38.251 @ IN MX 10 mail.jianghua.com. mail IN A 192.168.38.251
[root@zhangjh ~]# vim /var/named/jianghua.com.zone [root@zhangjh ~]# vim /var/named/jianghua.com.zone [root@zhangjh ~]# systemctl restart named [root@zhangjh ~]# systemctl enable named ln -s '/usr/lib/systemd/system/named.service' '/etc/systemd/system/multi-user.target.wants/named.service'
修改好配置文件后记得重启bind服务程序,这样电子邮件系统所对应的服务器主机名即为mail.jianghua.com,而邮件域为@jianghua.com。把服务器的DNS地址修改成本机IP地址
-
配置Postfix服务程序
第1步:安装Postfix服务程序。
[root@zhangjh ~]# yum install postfix -y [root@zhangjh ~]# systemctl disable iptables
第2步:配置Postfix服务程序。(/etc/ postfix/main.cf)
Postfix服务程序主配置文件中的重要参数:
参数 | 作用 |
myhostname | 邮局系统的主机名 |
mydomain | 邮局系统的域名 |
myorigin | 从本机发出邮件的域名名称 |
inet_interfaces | 监听的网卡接口 |
mydestination | 可接收邮件的主机名或域名 |
mynetworks | 设置可转发哪些主机的邮件 |
relay_domains | 设置可转发哪些网域的邮件 |
[root@zhangjh ~]# vim /etc/postfix/main.cf 74 # 75 #myhostname = host.domain.tld 76 myhostname = mail.jianghua.com #定义一个名为myhostname的变量,用来保存服务器的主机名称 82 # 83 mydomain = jianghua.com #定义一个名为mydomain的变量,用来保存邮件域的名称 97 # 98 #myorigin = $myhostname 99 myorigin = $mydomain #调用前面的mydomain变量,用来定义发出邮件的域 114 #inet_interfaces = $myhostname 115 #inet_interfaces = $myhostname, localhost 116 inet_interfaces = all #定义网卡监听地址 164 # 165 mydestination = $myhostname,$mydomain #定义可接收邮件的主机名或域名列表
第3步:创建电子邮件系统的登录账户,重启postfix服务
[root@zhangjh ~]# useradd boss [root@zhangjh ~]# echo "zhangjianghua66666" | passwd --stdin boss Changing password for user boss. passwd: all authentication tokens updated successfully. [root@zhangjh ~]# systemctl restart postfix.service [root@zhangjh ~]# systemctl enable postfix
- 配置Dovecot服务程序
Dovecot是一款能够为Linux系统提供IMAP和POP3电子邮件服务的开源服务程序,安全性极高,配置简单,执行速度快,而且占用的服务器硬件资源也较少,因此是一款值得推荐的收件服务程序。
第1步:安装Dovecot服务程序软件包。
[root@zhangjh ~]# yum install dovecot -y
第2步:配置部署Dovecot服务程序。
[root@zhangjh ~]# vim /etc/dovecot/dovecot.conf 23 # Protocols we want to be serving. 24 protocols = imap pop3 lmtp #修改电子邮件协议,为imap,pop3,lmtp 25 disable_plaintext_auth = no #允许用户使用明文进行密码验证 48 login_trusted_networks = 192.168.38.0/24 #设置允许登录的网段地址,默认允许所有人
第3步:配置邮件格式与存储路径。
[root@zhangjh ~]# vim /etc/dovecot/conf.d/10-mail.conf 24 # mail_location = maildir:~/Maildir 25 mail_location = mbox:~/mail:INBOX=/var/mail/%u #指定要将收到的邮件存放到服务器本地的哪个位置,默认已经设置好,去掉注释即可。 26 # mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
第4步:然后切换到配置Postfix服务程序时创建的boss账户,并在家目录中建立用于保存邮件的目录。记得要重启Dovecot服务并将其添加到开机启动项中。
[root@zhangjh ~]# su - boss [boss@mail ~]$ mkdir -p mail/.imap/INBOX [boss@mail ~]$ exit logout [root@zhangjh ~]# systemctl restart dovevot Failed to issue method call: Unit dovevot.service failed to load: No such file or directory. [root@zhangjh ~]# systemctl restart dovecot [root@zhangjh ~]# systemctl enable dovecot ln -s '/usr/lib/systemd/system/dovecot.service' '/etc/systemd/system/multi-user.target.wants/dovecot.service'
- 使用电子邮件系统
windows系统用foxmail测试即可。邮箱名:boss@jianghua.com 密码:password