1、配置防火墙(关闭防火墙或者添加端口)
1.1关闭防火墙:systemctl stop firewalld.service
或者
1.2添加信任端口(25/110/143)
[root@localhost ~]# firewall-cmd --add-port=25/tcp --permanent
success
[root@localhost ~]# firewall-cmd --add-port=110/tcp --permanent
success
[root@localhost ~]# firewall-cmd --add-port=143/tcp --permanent
success
2、修改hostname为邮件服务器那样的名字(非必要)
2.1、需要和/etc/postfix/main.cf文件的myhostname参数相同即可
2.2、修改hostname:hostnamectl set-hostname mail.test.com
3、搭建DNS环境域名解析,用于解析postfix地址(非必要)
当全部配置完成后,在利用telnet测试时,出现非配置的ip时需要搭建DNS环境域名解析
//-------------------------------------------------------------------------------------------------------------//
[root@mail ~]# yum install -y bind //安装DNS服务器
[root@mail ~]# vim /etc/named.conf //修改DNS主配置文件
listen-on port 53 { 92.168.xxx.zzz; };
allow-query { any; }; //修改这两行的内容
或者屏蔽掉
//-----------------------------------------------------------------------------------------------------------//
[root@mail ~]# vim /etc/named.rfc1912.zones //修改子配置文件
zone "test.com" IN {
type master;
file "test.com.zone";
};
//注意:192.168.xxx.zzz的ip地址,注意配置区别
zone "xxx.168.192.in-addr.arpa" {
type master;
file "test.com.local";
}; //在最后添加一个正向和一个反向解析区域
//-----------------------------------------------------------------------------------------------------------//
[root@mail ~]# cd /var/named/ //进入DNS服务器区域配置文件目录
[root@mail named]# cp -p named.localhost test.com.zone
[root@mail named]# cp -p named.localhost test.com.local //复制模板区域配置文件为指定区域配置文件。注:一定要保留源文件权限,如果未保留,须将属组改为named。
[root@mail named]# vim test.com.zone //编辑正向区域配置文件,修改并添加以下行
NS @
A 192.168.xxx.zzz
mail A 192.168.xxx.zzz
MX 10 mail.test.com
一定得注意格式
[root@mail named]# vim test.com.local //编辑反向区域配置文件,修改并添加以下行
@ IN SOA test.com rname.invalid. (
NS @
A 192.168.xxx.zzz
MX 10 mail.test.com
zzz PTR mail.test.com
//-----------------------------------------------------------------------------------------------------------//
[root@mail named]# systemctl start named //启动DNS域名解析服务器
[root@mail named]# systemctl enable named.service //开机启动
[root@mail named]# yum install -y bind-utils //安装nslookup命令测试dns能否解析成功
[root@mail named]# vim /etc/resolv.conf //给本机的DNS指向自己的dns服务器
nameserver 192.168.xxx.zzz
[root@mail named]# nslookup mail.test.com //解析邮件服务器地址,显示如下则表示成功
Server: 192.168.xxx.zzz
Address: 1192.168.xxx.zzz#53
Name: mail.test.com
Address: 192.168.xxx.zzz
4、安装postfix服务器并进行配置
yum install postfix(一般系统都预装好了)
[root@mail named]# vim /etc/postfix/main.cf //编辑postfix的配置文件,查找并修改对应配置项
#大约在75行,postfix主机名,修改成你的域名 此项需要添加A记录并指向postfix所在主机公网IP
myhostname = mail.test.com //本机主机名
#大约在83行,后面为主机域名
mydomain = test.com //服务器域名
#大约在100行,设置postfix邮箱的域名后缀为$mydomain
myorigin = $mydomain
#大约在117行
#指定postfix系统监听的网络接口
#若注释或填入公网ip 服务器的25端口将对公网开放
#默认值为all 即监听所有网络接口
#此项指定localhost后 本机postfix就只能发邮件不能接收邮件
inet_interfaces = all
#大约在120行,指定网络协议
inet_protocols = ipv4
#大约在165行
#指定postfix接收邮件时收件人的域名,换句话说,也就是你的postfix系统要接收什么样的邮件。
#此项配置中$myhostname表示postfix接受@$myhostname为后缀的邮箱的邮件 逗号分割支持指多项
#此项默认值使用myhostname
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain //目标域
#大约在266行
#指定你所在的网络的网络地址
#这里我填的依次是公网IP、内网IP、本地IP
#请依据实际情况修改
mynetworks = 192.168.xxx.xxx, 127.0.0.1
#大约在571行
#指定MUA通过smtp连接postfix时返回的header头信息
#原始配置附带有postfix版本号 去掉即可,此项酌情处理
smtpd_banner = $myhostname ESMTP
#大约在414行
home_mailbox = Maildir/ //邮件目录,在用户家目录下
#SMTP Config ,将下面的内容添加到文件尾部即可
# 规定邮件最大尺寸为10M
message_size_limit = 10485760
# 规定收件箱最大容量为1G
mailbox_size_limit = 1073741824
# SMTP认证
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
//
[root@mail named]# postfix check //检查配置文件是否有语法错误
[root@mail named]# systemctl start postfix //启动postfix服务器
[root@mail named]# systemctl enable postfix //添加到系统自启
//能看到postfix的日志
systemctl status postfix
5、修改MTA(默认邮件传输代理)
[root@mail named]#alternatives --config mta
[root@mail named]#1
[root@mail named]#alternatives --display mta
mta - status is manual.
若看到“mta - status is manual.”,则设置成功
6、安装并配置dovecot
yum install dovecot //安装dovecot
//配置dovecot
1.编辑文件dovecot.conf
vim /etc/dovecot/dovecot.conf
更改内容:
# 26行: 如果不使用IPv6,请修改为*
listen = *
2.编辑文件10-auth.conf
vim /etc/dovecot/conf.d/10-auth.conf
更改内容:
# 9行: 取消注释并修改 disable_plaintext_auth = no
# 97行: 添加 auth_mechanisms = plain login
3.编辑文件10-mail.conf
vim /etc/dovecot/conf.d/10-mail.conf
更改内容(设置邮件存放地址,~代表用户的根目录,每个用户都会存在一个此目录):
# 30行: 取消注释并添加 mail_location = maildir:~/Maildir
4.编辑文件10-master.conf
vim /etc/dovecot/conf.d/10-master.conf
更改内容:
# 97-99行: 取消注释并添加 # Postfix smtp验证
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
5.注意:如果我们没有使用ssl的话需要进行下面的操作。使用了则不需要。
编辑文件10-ssl.conf
vim /etc/dovecot/conf.d/10-ssl.conf
更改内容
# 8行: 将ssl的值修改为 ssl = no
6.启动dovecot并添加到开机自启。
systemctl restart dovecot
systemctl enable dovecot
5. 收发邮件测试
5.1创建用户
[root@mail named]# groupadd mailusers //添加邮件账号组
//创建jerry
[root@mail named]# useradd -g mailusers -s /sbin/nologin jerry
[root@mail named]# passwd jerry //修改密码
//创建tom
[root@mail named]# useradd -g mailusers -s /sbin/nologin tom
[root@mail named]# passwd tom //修改密码
5.2安装远程登录插件,用于登录25端口测试
[root@mail named]# yum install -y telnet //安装远程登录插件,用于登录25端口测试
[root@mail named]# telnet mail.test.com 25 //远程登录25端口
若出现以下情况,则说明连接smtp服务器成功,不成功可以用systemctl status postfix看postfix的日志
[root@localhost ~]# telnet mail.test.com 25
Trying 192.168.xxx.zzz...
Connected to mail.test.com.
Escape character is '^]'.
220 mail.test.com ESMTP
在telnet连接下输入以下内容测试
helo mail.aa.com //声明发送者的名字,注意不是hello
mail from:jerry@test.com //声明发件人地址
rcpt to:tom@test.com //声明收件人地址
data //写正文
workers of all lands , unite!
. //以”.”结尾
quit // 退出
查看/home/路径下的邮件账户下