Centos7.4 搭建邮件服务器
作者: dkvirus 发表于: 2018-06-25 15:41:00 最近更新: 2018-08-02 00:04:16

做微信小程序,一个邮箱注册一个微信公众平台账号,一个微信公众平台账号对应一个小程序。当个人维护几个小程序时,就需要许多邮箱。在此之前的做法是注册 QQ 使用 QQ 邮箱,带来恶心的地就是要记住所有 QQ 号及密码,还要定期登录,因为新注册 QQ 一段时间不登录就会被收回。在实验楼上课时看到了邮件服务器,遂起心意,搭建自己的邮件服务器,想要多少个邮箱就有多少个,本文记录 Centos7.4 搭建邮件服务器过程。

一、预备知识

1.1 概述

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

我们平时所用的 foxmail 或者 qq 邮箱都只是邮件客户端。

可以在邮件客户端写邮件,点击发送。此时会将邮件发送到邮件发送服务器上进行转发。

在邮件客户端点击收取邮件,会从邮件收取服务器上抓取最新邮件,在客户端展示。

本文主要搭建两个服务器,并用邮件客户端(foxmail)做测试。

1.2 材料

域名一个:dkvirus.top(已备案,没备案的自己备案先)

DNS 解析,新增两条记录:

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

服务器一台:买的阿里云 ECS 服务器,Centos 7.4

暂时没有域名(要备案过的)和服务器的可以结束阅读以节约您的时间。

1.3 协议

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

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

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

1.4 软件

这些软件可能比较陌生,但是上手很简单:安装它 > 配置它 > 启动它。Over!

1.4.1 Postfix

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

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

1.4.2 Dovecot

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

1.4.3 Sasl

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

二、搭建邮件发送服务器

2.1 安装 Postfix

Postfix 就是邮件发送服务器,我们需要先安装它。

1
2
# yum remove sendmail
# yum install -y postfix

sendmail 和 postfix 都是邮件发送服务器的软件,只不过是一代的产品,年轻一代 postfix 功能更强大,所以先卸载老的 sendmail,再安装新的 postfix。

2.2 配置文件

配置 postfix

1
vim /etc/postfix/main.cf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
myhostname=mail.dkvirus.top             # 换成邮箱服务器
mydomain=dkvirus.com # 换成你的域名
myorigin = $mydomain # 该参数含义为申请邮箱为 @$mydomain 结尾,如:dk@dkvirus.top
inet_interfaces = all # 可以接收所有域名的邮件
inet_protocols = ipv4 # 全部小写,否则报错
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,mail.$mydomain, www.$mydomain, ftp.$mydomain
mynetworks = 101.142.106.0/24, 127.0.0.0/8 # 服务器地址为 101.142.106.43 这里写成 101.142.106.0
home_mailbox = Maildir/

#以下内容直接粘贴到底部
message_size_limit = 10485760 # 规定邮件最大尺寸为10M
mailbox_size_limit = 1073741824 # 规定收件箱最大容量为1G
# SMTP认证,还记得 Sasl 是干嘛的吗?
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_sasl_authenticated,reject_unauth_destination,permit_mynetworks
smtpd_client_restrictions = permit_sasl_authenticated
broken_sasl_auth_clients = yes

2.3 启动

1
# systemctl start postfix

然后敲入 # ss -lnt 查看端口,观察是否有 25 端口,有的话说明启动成功,没有的话查看日志 # journal -f -u postfix 排错。

三、搭建邮件收取服务器

3.1 安装 Dovecot

1
# yum install -y dovecot

3.2 配置文件

1
2
3
4
vim /etc/dovecot/dovecot.conf
####修改如下内
protocols = imap pop3 lmtp
listen = *
1
2
3
4
vim /etc/dovecot/conf.d/10-auth.conf
####修改如下内
disable_plaintext_auth = no
auth_mechanisms = plain
1
2
3
vim /etc/dovecot/conf.d/10-mail.conf
####修改如下内
mail_location = maildir:~/Maildir
1
2
3
vim /etc/dovecot/conf.d/10-ssl.conf
####修改如下内
ssl = no

3.3 启动

1
# systemctl start dovecot

然后敲入 # ss -lnt 查看端口,观察是否有 110 端口,有的话说明启动成功,没有的话查看日志 # journal -f -u dovecot 排错。

四、邮件认证 Sasl

4.1 安装

1
# yum install -y cyrus-sasl-*

4.2 配置

1
2
3
vim /etc/sysconfig/saslauthd
####修改如下内
MECH=shadow #指定以本地系统用户名认证
1
2
3
4
5
vim /usr/lib64/sas12/smtpd.conf    //64位系统
####修改如下内,如果没有文件,自行创建该目录和文件
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
log_level:3

4.3 启动

1
# systemctl  start  saslauthd

五、申请邮箱

回想我们注册 QQ 之后会有个 QQ 邮箱:xxxxxxxx@qq.com

现在邮件服务器搭建好了,如何申请邮箱呢?

在服务器上新增用户,用户就是你的邮箱账号,如新增用户 test,完整邮箱就是 test@dkvirus.top,邮箱密码就是用户密码。

1
2
# useradd test
# passwd test

六、邮箱客户端测试

这里使用 Foxmail 邮箱客户端测试收发邮件。

设置 > 账号 > 新建 > 手动设置:

  • 接收服务器类型:选择 POP3(这里也可以选择 IMAP)
  • 邮件账号:test@dkvirus.top
  • 密码:test 用户的密码
  • POP 服务器:mail.dkvirus.top(即便上面选择 IMAP,这里填写值不变)
  • SMTP 服务器:mail.dkvirus.top

选择创建,新增了一个邮件客户端账号。现在可以往其它邮件发送邮件与接收邮件测试了。

如果使用阿里云服务器,记得开放 25 和 110 端口,否则这里是连不上的。开放端口见 《阿里云服务器配置开放端口》

七、参考

首页
友链
归档
dkvirus
动态
RSS