一、邮件系统概述
1.MTA(Mail Transfer Agent)邮件传输代理
一般称为邮件服务器软件。MTA 软件负责接收客户端软件发送的邮件,并将邮件传输给其他 MTA 程序,是电子邮件系统中的核心部分。常见的 MTA 软件有 Windows 系统的 Exchange 和 Linux 系统下的 Sendmail、Postfix 等。
2.MUA(Mail User Agent)邮件用户代理
一般称为邮件客户端软件。MUA 软件功能是为用户提供发送、接收和管理电子邮件的界面。在 Windows 平台中常用的 MUA 软件包括 Outlook Express、Outlook、Foxmail 等。在 Linux 平台中常用的 MUA 软件包括 Thunderbird、Kmail、Evolution 等。
3.MDA(Mail Delivery Agent)邮件分发代理
MDA 软件负责在服务器中将邮件分发到用户的邮箱目录。MDA 软件相对比较特殊,它并不直接面向邮件用户,而是后台默默地工作。有时候 MDA 的功能可以直接集成在 MTA 软件中,因此经常被忽略。
二、邮件通信协议
1.SMTP(Simple Mail Protocol)简单邮件传输协议
SMTP 协议使用 TCP 端口号为 25
主要用于发送和传输邮件。MUA 使用 SMTP 协议将邮件发送到 MTA 服务器中,而MTA 将邮件传输给其他的 MTA 服务器时同样也使用 SMTP 协议。
2.POP(Post Office Protocol)邮局协议
POP3 协议使用的 TCP 端口号为 110
主要用于从邮件服务器中收取邮件。目前 POP 协议的最新版本时 POP3.
3.IMAP(Internet Message Access Protocol)互联网消息访问协议
IMAP4 协议使用的 TCP 端口号为 143
与 POP 同样用于收取邮件,相比较 IMAP4 协议提供了更为灵活和强大的邮件收取、邮件管理功能。目前 IMAP 协议的最新版本是 IMAP4。
三、常见的邮件服务器软件
1.商业邮件系统:Exchange\Notes/Domino 等
2.UNIX/Linux:Sendmail、Qmail、Postfix 等
Postfix 由 Wietse 负责开发,其目的是为了 Sendmail 提供一个更好的替代产品。Postfix 在投递效率、稳定性、服务性能及安全性方面都有相当出色的表现。
四、配置 postfix 服务程序
1.Postfix 邮件服务器概述
Postfix邮件服务器采用了模块化的设计,由许多个不同的程序集合而成,分别用于实现不同的功能.Postfix在启动时首先启动名为master的进程,由master进程主导邮件的处理工作,并在需要时自动加载其他程序以协同工作。
2.安装 postfix 服务程序
官方网站:http://www.postfix.org
1> 环境准备
配置 DNS 域名解析服务器(详细过程略,配置单如下)
[root@ns1 named]# systemctl restart named.service
设置邮件服务器的默认 DNS 服务器
[root@huyouba1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.100.1
[root@huyouba1 ~]# nslookup mail.huyouba1.com
Server: 192.168.100.1
Address: 192.168.100.1#53
Name: mail.huyouba1.com
Address: 192.168.100.100
配置服务器主机名称,需要保证服务器主机名称与发信域名保持一致
[root@huyouba1 ~]# hostnamectl set-hostname mail.huyouba1.com
[root@huyouba1 ~]# bash
[root@mail ~]#
2> 安装 postfix 服务程序
Centos7 中自带 postfix 工具无需安装
[root@mail ~]# yum -y install postfix
已加载插件:fastestmirror
Determining fastest mirrors
ftp | 3.6 kB 00:00:00
软件包 2:postfix-2.10.1-7.el7.x86_64 已安装并且是最新版本
无须任何处理
3> 主要目录
/etc/postfix:包括 postfix 服务的主配置文件,各类脚本、查询表等
/usr/libexec/postfix/:包括 postfix 服务的各个服务器程序文件
/var/spool/postfix/:包括 postfix 服务的邮件队列相关的子目录,每个队列子目录用于保护不同的邮件
- Incoming(传入):存放刚接收到的邮件
- Active(活动):存放正在投递的邮件
- Deferred(推迟):存放以前投递失败的邮件
- Hold(约束):存放被阻止发送的邮件
- Corrupt(错误):存放不可读或不可分析的邮件
/usr/sbin/:包括 postfix 服务的各种管理工具程序,这些程序文件名以 post 开头
- Postalias:构造、修改和查询别名表
- Postconf:显示和编辑 main.cf 配置文件
- Postfix:启动、停止 postfix 邮件服务,要求有 root 用户权限
- Postmap:构造、修改或者查询表文件(记录如别名等映射关系的文件)
- Postqueue:查看邮件队列,一般用户也可以使用
- Postsuoer:管理邮件队列,要求有 root 用户权限
/usr/sbin/post*:执行脚本
/var/log/maillog:日志文件
4> 精简 mail.conf 配置项
postconf:查看当前启动的所有配置
postconf -n:只列出使用非默认的值
[root@mail ~]# cd /etc/postfix/
[root@mail postfix]# ls
access canonical generic header_checks main.cf master.cf relocated transport virtual
[root@mail postfix]# vim main.cf
76 myhostname = mail.huyouba1.com //邮件服务器的主机名
83 mydomain = huyouba1.com //邮件域
99 myorigin = $mydomain //外发邮件时发件人地址中的邮件域
116 inet_interfaces = 192.168.100.10 //监听服务的 ip,默认是 all
164 mydestination = $mydomain,$myhostname //允许投递到本地目标邮件域
419 home_mailbox = Maildir/ //设置邮件存储位置和格式
5> 重新启动 postfix 服务器
[root@mail postfix]# systemctl restart postfix
[root@mail postfix]# systemctl enable postfix
6> 创建电子邮箱登录用户
postfix 与 vsftpd 的服务程序一样,都可以调用本地系统的账户和密码,因此在本地创建常规用户即可。
[root@mail postfix]# groupadd -g 1000 mailusers
[root@mail postfix]# useradd -g 1000 -s /sbin/nologin zhangsan
[root@mail postfix]# useradd -g 1000 -s /sbin/nologin lisi
[root@mail postfix]# echo "123123" |passwd --stdin zhangsan
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@mail postfix]# echo "123123" |passwd --stdin lisi
更改用户 lisi 的密码 。
passwd:所有的身份验证令牌已经成功更新。
五、配置 POP/IMAP 收信服务
1.Dovecot 收信服务概述
POP3/IMAP 服务器软件,影响速度开而且扩展性好。Dovecot 默认也是用 Linux 的系统用户,并通过 PAM 机制进行身份认证,只有通过认证后才允许用户收取邮件。
1> 安装 Dovecot 软件包
[root@mail postfix]# yum -y install dovecot
2> 配置部署 Dovecot 服务程序
在 Dovecot 服务程序的主配置文件中进行如下修改,首先是 24 行,把 Dovecot 服务程序支持的电子邮件协议修改为 IMAP,POP3和LMTP。然后在这一行下面添加一个参数,允许用户使用明文进行密码验证,之所以这样操作,是因为 Dovecot 服务程序为了保证电子邮件系统的安全而默认强制用户使用加密方式登录,而由于当前还没有加密系统,因此需要添加该参数来允许用户的明文登录。
[root@mail ~]# vim /etc/dovecot/dovecot.conf
24 protocols = imap pop3 lmtp
25 disable_plaintext_auth = no
在主配置文件中的第 48 行,设置允许登录的网段地址,也就是说我们可以在这里限制只有来自某个网段的用户才能使用电子邮件系统。如果想允许所有人都能使用,则不用修改本参数;
48 login_trusted_networks = 192.168.100.0/24
设置邮箱用户的邮件存放位置
mail_location = maildir:~/Maildir
3> 启动 Dovecot 收信程序
[root@mail ~]# systemctl enable dovecot
Created symlink from /etc/systemd/system/multi-user.target.wants/dovecot.service to /usr/lib/systemd/system/dovecot.service.
[root@mail ~]# systemctl start dovecot
[root@mail ~]# netstat -utpln |grep dove*
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 14310/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 14310/dovecot
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 14310/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 14310/dovecot
tcp6 0 0 :::110 :::* LISTEN 14310/dovecot
tcp6 0 0 :::143 :::* LISTEN 14310/dovecot
tcp6 0 0 :::993 :::* LISTEN 14310/dovecot
tcp6 0 0 :::995 :::* LISTEN 14310/dovecot
六、测试电子邮件系统
可以用窗口自带的前景软件来测试
打开 outlook 客户端
根据默认设置点击下一步
输入电子邮件账户信息,然后点击下一步
选择使用非加密连接
发送电子邮件进行测试
利用 Linux 的客户端命令发送邮件
telnet mail.huyouba1.com 25
ehlo mail.huyouba1.com
mail from:lisi@huyouba1.com
rcpt to:zhangsan@huyouba1.com
subject:smtp auth test!
hahaha
.
quit
221 2.0.0 Bye