搭建 Postfix、Dovecot 邮件服务

准备域名

任务时间:15min ~ 20min

域名注册

如果您还没有域名,可以在腾讯云上选购,过程可以参考下面的视频。

  • 视频 - 在腾讯云上购买域名

域名解析

域名购买完成后, 需要将域名解析到实验云主机上,实验云主机的 IP 为:

<您的 CVM IP 地址>

在腾讯云购买的域名,可以到控制台添加解析记录,过程可参考下面的视频:

  • 视频 - 如何在腾讯云上解析域名

完成该实验共需要添加两条记录:

A 记录

记录类型:A

主机记录:@

记录值:<您的 CVM IP 地址>

MX 记录

记录类型:MX

主机记录:@

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

生效检查

域名设置解析后需要过一段时间才会生效,通过 ping 命令检查域名是否生效 [?],如:

ping yourdomain.com

如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。

(使用 ctrl + c 停止)

检查 MX 记录

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

nslookup -q=mx yourdomain.com

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

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

实验之前

任务时间:5min

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

Postfix、Dovecot 简介

Postfix

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

Dovecot

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

Postfix、Dovecot 安装

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

yum -y install postfix dovecot

Postfix

任务时间:5min ~ 10min

配置 Postfix

有关教程中配置参数的具体含义,请参照 Postfix 配置文档

配置

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

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

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 文件,将如下两行前的 # 去除:

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

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

然后 ctrl + s 保存文件。

启动

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

systemctl enable postfix.service
systemctl start  postfix.service

Postfix 日志

Postfix 系统的日志文件在系统的这个目录下的 /var/log/maillog 文件,此文件记录了 Postfix 服务器的运行状态信息。

Dovecot

任务时间:5min ~ 10min

配置 Dovecot

修改 dovecot.conf

打开 /etc/dovecot/dovecot.conf 文件,在最下方加入以下配置:

示例代码:/etc/dovecot/dovecot.conf
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

protocols = imap pop3 lmtp
listen = *
mail_location = Maildir:~/Maildir
disable_plaintext_auth = no

如果前面你修改为了自己的 ssl 证书和私钥,请替换开始两行配置的路径。

然后 ctrl + s 保存文件。

修改 10-master.conf

打开 /etc/dovecot/conf.d/10-master.conf 文件,找到 service auth 部分,将以下行前面的 # 去除:

unix_listener /var/spool/postfix/private/auth {  
       mode = 0666  
}

然后 ctrl + s 保存文件。

启动 Dovecot

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

systemctl enable dovecot.service
systemctl start  dovecot.service

查看 /var/log/maillog 文件,查看服务是否成功启动。

如成功启动,日志里应包含如下信息:

Jun 26 12:00:28 localhost postfix/postfix-script[28338]: starting the Postfix mail system
Jun 26 12:00:29 localhost postfix/master[28340]: daemon started -- version 2.10.1, configuration /etc/postfix
Jun 26 12:28:40 localhost dovecot: master: Dovecot v2.2.10 starting up for imap, pop3, lmtp (core dumps disabled)

创建账户

任务时间:5min ~ 10min

该配置下邮箱账户依赖于系统用户,所以通过添加系统用户的方式创建邮箱账户。

添加用户

在终端中使用 useradd 命令添加用户:

useradd test

使用 passwd 命令设置对应用户密码:

passwd test

测试

任务时间:10min ~ 15min

如测试中遇到异常,请查看 maillog 日志文件中的错误信息。

服务器端发送测试

使用 su 命令切换用户:

su test

我们可以使用 mail 命令发送邮件,将 xxxx@xxx.com 替换为你的其他邮箱。

echo "Mail Content" | mail -s "Mail Subject" xxxx@xxx.com

然后可以前往你的接收方邮箱查收。

邮件客户端

你可以将该邮箱账户添加至邮件客户端使用,推荐使用 Foxmail 客户端。

可以参考以下配置进行设置:

服务器类型:`POP3`
邮箱账户:  `test@yourdomain.com`

收件(POP3)服务器:  `yourdomain.com`
端口:              `995`
安全连接(SSL):     `是`
用户名:            `test`
密码:              `test用户密码`

发件(SMTP)服务器:  `yourdomain.com`
端口:              `465`
安全连接(SSL):     `是`
用户名:            `test`
密码:              `test用户密码`

然后就可以使用邮件客户端通过该账户收发邮件了。

(该配置在某些邮件客户端下可能因为使用了通用证书而出现使用异常)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容