Fork me on GitHub

搭建邮件服务器

Postfix 是一个标准的 MTA [Mail Transfer Agent] 服务器 ,它负责通过 SMTP 协议管理发送到本机的邮件以及由本机发向外界的邮件;Dovecot 是一个优秀的 IMAP/POP 服务器用以接收外界发送到本机的邮件。

域名解析

添加两条域名解析

A 记录

记录类型:A

主机记录:@

记录值:IP 地址

MX 记录

记录类型:MX

主机记录:@

记录值:yourdomain.com(替换为自己域名)

生效检查

域名设置解析后需要过一段时间才会生效,通过

1
ping ping yourdomain.com

命令检查域名是否生效

检查 MX 记录

替换下面命令中的 yourdomain.com 为您自己的注册的域名:

1
nslookup -q=mx yourdomain.com

如果 nslookup 命令返回的信息中含有你设置的域名的记录值,说明解析成功。

实验之前

配置一个功能完善的邮件服务器并不是一项容易的工作,本实验知识搭建一个简单的邮件服务器,一些更为强大的功能还需要你去探索。

Postfix、Dovecot 简介

Postfix

Postfix 是一个标准的 MTA「Mail Transfer Agent」服务器,它负责通过 SMTP 协议管理发送到本机的邮件以及由本机发向外界的邮件。

Dovecot

Dovecot 是一个优秀的 IMAP/POP 服务器用以接收外界发送到本机的邮件。

Postfix、Dovecot 安装

在 CentOS 7 上,我们可以直接使用 yum 进行下载安装:

1
yum -y install postfix dovecot

Postfix

配置 Postfix

有关配置参数的具体含义,请参考 Postfix 配置文档

配置

在终端中输入一下命令修改 Postfix 相关配置:

注意:记得将 yourdomain.com 替换为你自己的域名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
postconf -e 'myhostname = server.yourdomain.com'
postconf -e 'mydestination = localhost, localhost.localdomain'
postconf -e 'myorigin = $mydomain'
postconf -e 'mynetworks = 127.0.0.0/8'
postconf -e 'inet_interfaces = all'
postconf -e 'inet_protocols = all'
postconf -e 'mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain'
postconf -e 'home_mailbox = Maildir/'
postconf -e 'smtpd_sasl_type = dovecot'
postconf -e 'smtpd_sasl_path = private/auth'
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_sasl_authenticated_header = yes'
postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem'
postconf -e 'smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem'

配置中 Postfix 使用 sasltls 来完成身份认证和传输信息加密。

试验中使用了 Dovecot 默认的 ssl 证书和私钥,如果你需要修改为自己的,请替换最后两行配置的路径。

配置 smtps

部分邮件客户端依赖于使用 465 端口提供加密连接,所以我们修改配置,允许 postfix 使用 465 端口发送邮件。

打开 /etc/postfix/master.cf 文件,将如下两行前的 # 去除:

1
2
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes

(注意:-o 前要保留空格)

启动

使用以下命令,将 Postfix 设为自动启动并首次启动该服务:

1
2
systemctl enable postfix.service
systemctl start postfix.service
坚持原创技术分享,您的支持将鼓励我继续创作
显示 Gitment 评论