centos7搭建邮件服务器

拥有一台服务器,用来干嘛?放着吃灰不就等于花冤枉钱吗?何不充分发挥它的价值,比如搭建一个自己的邮件服务器。拥有一个自己域名的邮箱是可以装X的哦🙅‍♂ …

一、预备知识

1. 概述

邮件收、发服务器是分开的,也就是我们需要搭建一个邮件发送服务器和一个邮件收取服务器。

本文会搭建收、发两个服务器,并用邮件客户端(Foxmail)做测试。

2. 协议

协议就是定义规则,这里是邮件协议,定义邮件收发的规则,了解规则有助于理解软件的配置文件。

邮件发送协议 SMTP(Simple Mail Transfer Protocol),打开端口 25。

邮件收取协议 POP,打开端口 110;还有个常用邮件收取协议 IMOP,打开端口 143。

3. 服务软件

Postfix

Postfix 是实现 SMTP 协议的软件,也叫做邮件发送服务器。

上面说的邮件客户端将邮件扔给它,由它对邮件进行转发,至于怎么转发,SMTP 协议制定了规则,而 Postfix 负责具体事情,我们只需要修改 Postfix 配置文件要求它按照我们的想法去做。

Dovecot

Dovecot 实现了 POP 和 IMOP 协议,也叫做邮件收取服务器。如果只搭建了 Postfix 而没有它,不好意思,你是收不到邮件的。

Sasl

Sasl登陆验证服务,在下面的介绍可以看到 Postfix 作为邮件发送服务器,不能无限制的转发任意邮件,应当只转发它信任的发件人发送的邮件,这一点体现在 Postfix 的配置文件要配置它认为安全的主机(mynetworks 参数)。但这样会显得很麻烦,Sasl 通过其它方式也可以帮助 Postfix 完成信任邮件的认证。

二、搭建及测试

1. 设置域名

域名或自建DNS照下面方式设置即可

DNS 解析,新增两条记录:

记录类型 主机记录 记录值
A mail 10.10.10.10(你的服务器ip)
MX @ mail.qcmoke.top

2. 安装软件postfix、dovecot、cyrus-sasl

1
2
3
4
5
[root@mail ~]# yum -y install postfix dovecot  cyrus-sasl

[root@mail ~]# postconf -a      #验证是否支持cyrus dovecot功能
cyrus
dovecot

postfix主要是为发件服务,端口:25 ;devocot为收件服务,端口为:110145 ; cyrus-sasl登陆验证服务。如果你的服务器有开启防火墙,那么还需要开放这几个必要的端口。如果你只是为了测试,你可以直接先关闭防火墙,测试成功后再对防火墙做配置。我们下面也是用关闭防火墙这种方式讲解。

关闭防火墙

1
[root@mail ~]# service firewalld stop

修改postfix主配置文件,启动服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@mail ~]# vim /etc/postfix/main.cf
#修改以下配置,注意下面的变量不要重复,如果发现与原来的变量重名,那就将原来的变量给注释掉
#邮件服务器的主机名
myhostname = mail.qcmoke.top
#邮件域
mydomain = qcmoke.top
#往外发邮件的邮件域
myorigin = $mydomain
#监听的网卡
inet_interfaces = all
inet_protocols = all
#服务的对象
mydestination = $myhostname, $mydomain
#邮件存放的目录
home_mailbox = Maildir/

#新添加以下配置
#--------自定义(下面可以复制粘贴到文件最后面,用于设置服务器验为主,第一行设置发送附件大小)
#message_size_limit = 100000
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
mynetworks = 127.0.0.0/8
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

配置补充说明

  • smtpd_sasl_auth_enable = yes //开启认证
  • smtpd_sasl_security_options = noanonymous //不允许匿名发信
  • mynetworks = 127.0.0.0/8//允许的网段,如果增加本机所在网段就会出现允许不验证也能向外域发信
  • smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
  • 允许本地域以及认证成功的发信,拒绝认证失败的发信
1
2
3
[root@mail ~]# postfix check   #修改保存后检查配置文件是否有错
[root@mail ~]# systemctl start postfix #开启postfix服务
[root@mail ~]# systemctl enable postfix #设置postfix服务开机启动

修改dovecot主配置文件,启动服务

1
2
3
4
5
6
7
8
9
10
11
12
[root@mail ~]# vim /etc/dovecot/dovecot.conf
#修改以下配置
protocols = imap pop3 lmtp
listen = *, ::

#新添加以下配置
#-----------自定义------------
!include conf.d/10-auth.conf

ssl = no
disable_plaintext_auth = no
mail_location = maildir:~/Maildir
1
2
[root@mail ~]# systemctl start dovecot
[root@mail ~]# systemctl enable dovecot

修改cyrus-sasl主配置文件

1
2
3
4
[root@mail ~]# vim /etc/sasl2/smtpd.conf  #这个是空文件,直接添加下面配置(配置认证方式)
pwcheck_method: saslauthd
mech_list: plain login
log_level:3
1
2
[root@mail ~]# vim /etc/sysconfig/saslauthd  //修改下面配置项(本地用户认证)
MECH=shadow
1
2
[root@mail ~]# systemctl start saslauthd
[root@mail ~]# systemctl enable saslauthd

3. 创建用户,安装telnet进行邮件收发测试

1
2
3
4
5
6
[root@mail ~]# yum -y install telnet-server telnet

[root@mail ~]# useradd wen -s /sbin/nologin
[root@mail ~]# useradd qcmoke #此用户为本人主机用户,需要登录,故没有禁止登录
[root@mail ~]# echo '123123' | passwd --stdin qcmoke
[root@mail ~]# echo '123123' | passwd --stdin wen

3.1 发送本地邮件测试

--------------连接服务器的25端口进行简单发信测试-----------
[root@mail ~]# telnet mail.qcmoke.top 25
//连接成功,开始写信
helo mail.qcmoke.top //声明本机的主机
mail from:qcmoke.top //声明发件人地址
rcpt to:wen@qcmoke.top //声明收件人地址
data //写正文
HI THis is qcmoke, Good day!
. //记住这里是以点作为正文结束标记
quit // 退出

到这里信件就已经发送了,接下来是验证收取邮件了。

收取邮件验证

---------------收信验证---------------
[root@localhost ~]# telnet mail.qcmoke.top 110
user wen //收件人登录
pass 123456 //邮箱密码
list //列表查看邮件
retr 1 //读取编号为1的邮件
quit //退出邮箱

查看到了发送的内容,那这里就算是收件成功了

3.2发送邮件到其它邮箱服务器测试

这里用mailx这个软件来测试发送

安装mailx

1
yum  install  mailx -y
1
2
3
[root@mail ~]# su - qcmoke  #切换用户,要求此用户具有登录权限
Last login: Sat Oct 20 16:20:01 CST 2018 from 193.112.217.131 on pts/2
[qcmoke@mail ~]$ echo '这是测试' | mail -s '你好,黔城陌客' 1667164190@qq.com

再登陆到qq邮箱发现接收成功即可。

到里邮箱的收发功能就都具备了。

4. 客户端邮箱软件测试

我这里用windowsFoxmail邮件代理接收发送客户端作演示

1547755486122

1547755521867

我这是登陆设置好的了,收信和发信账号及密码就是在linux系统那里创建的账号和对应的密码。

设置验证成功后就可以畅发邮件了。



----------- 本文结束 -----------




如果你觉得我的文章对你有帮助,你可以打赏我哦~
0%