前言

用自己的域名作为邮箱的后缀,好看、有面子!只要域名不过期,那么,你的邮箱就永远存在!

邮件系统很多,宝塔自带的邮局更是简单,但是若想邮箱可靠(丢邮件、发送邮件进入对方垃圾箱等),还是需要花费一点功夫。

首先 VPS 支持 PTR 反向解析,尤为重要,当然,也不是必须的,看你自己的取舍,若是没有 PTR ,会存在丢失邮件的情况。

相关知识普及:

在邮件的交换记录中,有 A记录 和 PTR记录 两种,A记录大家应该是耳熟能详了,我们每天搭建服务、解析域名到 IP,用的就是 A记录,我们称为正向解析,用来映射域名到 IP

而 PTR记录,则是相反的,所以也被我们成为反向解析,他是用来把一个 IP 映射到域名。

视频教程

前台预览

准备工具

1、干净的 VPS 一台,内存最好大于 1 GB,推荐 CentOS、Ubuntu,以下教程用 CentOS 演示,Ubuntu 请自行更换 yum 命令即可。

(CentOS 项目将重点转移到 CentOS Stream,CentOS 8 将在 2021 年底结束)

2、VPS 最好支持 PTR Records,演示用的 VPS 来自 星智云

3、域名一个,推荐托管 cloudflare (解析生效快)或者你自己的域名解析平台

(若是没有域名,或是不会注册,或是不会托管到 cloudflare ,请点击这里

4、规划好作为邮件服务器的域名,演示用 mail.ailose.com,把该域名解析到 VPS IP。

给域名绑定做预备

根域名必须有A记录解析哪怕解析到127.0.0.1上都行

本次使用ailose.com作为演示,根域名不使用(但一定要解析), 我们拿mail.ailose.com来解析VPS的IP地址

1.先把根域名解析A记录

2.mail.ailose.com解析到VPS的IP

3.将ailose.com设置MX记录,解析值为mail.ailose.com, 优先级设置为10

搭建 iRedMail 邮件服务器

设置 VPS 以及系统

更新系统、安装组件

apt update -y

设置 VPS 主机名

我们规划邮局的域名为 mail.ailose.com ,所以,我们需要对 VPS 的主机名进行设置。

首先,需要编辑 /etc/hosts 文件,找到含有你的 VPS IP 地址的那一行;如果没有,则添加一行。内容如下:

127.0.0.1 mail.ailose.com mail

其中, 127.0.0.1 可换为你的服务器 IP 地址,后面依次填入长主机名和短主机名,切记不可填反。

然后,我们找到 VPS 的 /etc/hostname 文件,编辑里面的内容为 mail (域名的前缀)

这样,就设置好了主机名。重启 VPS

此时我们检查一下是否设置正确:

执行:hostname

执行:hostname -f

此时,我们分别看到mail 和 mail.ailose.com

这样,我们就全部设置好了主机名(hostname), 可以进行接下来的其他操作了

下载并安装 iRedMail

apt-get install git -y
git clone https://github.com/iredmail/iRedMail.git
cd iRedMail
bash iRedMail.sh

系统将会自动开始安装。安装过程中会出现下面这些情况,您需要依次根据您自己的信息来设置。

  • 第一步,欢迎界面,两个选项,yes或no ,直接回车yes。
  • 第二部,设置安装目录,这里可以看到安装目录为/var/vmail 直接回车,下一步。
  • 第三步,选择web服务器,此时可以看到nginx前面有个星号,这代表已经被选中,如果没有星号,切换到nginx选项,按一下空格,星号出现,回车下一步。
  • 第四步,选择数据库,上下选择到MariaDB ,空格星号选中,回车下一步。
  • 第五步,设置数据库密码,自己设置。
  • 第六步,设置域,不带mail,就是maoge.pw。
  • 第七步,设置管理员账号的密码,不是设置账号,是密码,自己设置。
  • 第八步,选择需要安装的组件,默认即可,那个Sogo可安可不安,都行,不影响邮件服务,回车下一步。

设置完毕后,屏幕上会列出来这些信息,我们输入y确认安装。

安装需要大概10分钟左右。全部安装好之后,系统会提示是否设置防火墙规则,我们输入y确认即可。

重启服务器,让邮件服务器生效! 至此,邮件服务器搭建完毕,以下开始设置邮件服务器。

可以通过访问(当然,我们目前还没有解析域名,后面一起解析)
https://你的域名/mail        ——邮件登录地址
https://你的域名/netdata     ——服务器状态监控
https://你的域名/iredadmin   ——邮件服务器后台管理
 
管理员账号:postmaster@你的域  例如 postmaster@163.com
管理员密码:安装时候设置的密码
以上信息,可以在 /root/iRedMail-1.4.2/iRedMail.tips 文件中查看

配置 iRedMail 邮件服务器

申请证书

安装证书脚本

apt-get install certbot

然后,即可申请免费的Let’s Encrypt证书:

certbot certonly --webroot -d mail.ailose.com -w /var/www/html/

这个申请命令后会要求填入邮箱地址

然后根据提示输入A,然后他会提示给你发广告邮件输入N不同意,

生成的公钥在路径 /etc/letsencrypt/live/mail.ailose.com/fullchain.pem

私钥 /etc/letsencrypt/live/mail.ailose.com/privkey.pem

配置证书

申请完毕后,我们首先配置Nginx.

编辑文件/etc/nginx/templates/ssl.tmpl, 找到下面两行:

ssl_certificate /etc/ssl/certs/iRedMail.crt;
ssl_certificate_key /etc/ssl/private/iRedMail.key;

将地址替换为您的证书地址,我这里是:

ssl_certificate /etc/letsencrypt/live/mail.ailose.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.ailose.com/privkey.pem;

保存好后重新载入Nginx配置文件:

service nginx reload

收发信时,同样需要用到TLS安全验证,因此我们还需要配置Postfix和Dovecot. 首先,编辑/etc/postfix/main.cf文件,找到下面这三行(我这里是第95 ~ 97行):

smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt
smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt

将其替换为您的证书地址:

smtpd_tls_key_file = /etc/letsencrypt/live/mail.ailose.com/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.ailose.com/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.ailose.com/chain.pem

保存好之后重新载入Postfix配置文件。

service postfix reload

最后,给Dovecot配置证书。编辑文件/etc/dovecot/dovecot.conf, 找到下面这两行(我这里是第45和46行):

ssl_cert = </etc/ssl/certs/iRedMail.crt
ssl_key = </etc/ssl/private/iRedMail.key

将其替换为您的证书地址:

ssl_cert = </etc/letsencrypt/live/mail.ailose.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.ailose.com/privkey.pem

保存好之后重新载入Dovecot配置文件。

service dovecot reload

这样,我们为Nginx, Postfix, Dovecot分别配置好了SSL/TLS安全证书。

禁用 iRedMail 灰名单

灰名单(greylist)是一项防止垃圾邮件的功能,iRedMail默认开启了该功能。但是,该功能开启之后,收所有信件的时候都有较长时间的延迟。因此,我们这里将该功能关闭。

我们首先给配置文件提权:

chmod +w /opt/iredapd/settings.py

然后编辑该文件(/opt/iredapd/settings.py),找到下面这行:

plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]

将其中的”greylisting”这项删去即可。然后,重启iredapd, 并且恢复文件权限

service iredapd restart
chmod -w /opt/iredapd/settings.py

配置 DNS 及解析

设置 SPF 记录

您需要设置一条TXT记录,将根域名(比如我这里的ailose.com)解析值设置如下。

内容为 v=spf1 mx ~all

设置 DMARC 记录

DMARC记录的设置比较复杂,我们这里先简单设置一下,对于普通的域名邮箱足够使用了。以ailose.com域名为例,您需要添加一条TXT记录,将_dmarc.ailose.com (请不要遗漏dmarc前面的那个下划线)解析值设置为如下:

v=DMARC1; p=none; pct=100; rua=mailto:dmarc@ailose.com

设置 DKIM记录

配置DKIM记录之前,我们先要生成DKIM密钥。在SSH中执行:

amavisd-new showkeys

将括号内的文本 去除引号以及空格并相连 就是咱们的 DKIM 数据,在解析中添加一条 dkim._domainkey 的 TXT 解析,内容就是咱们组合出的文本

后记

Perfect!mail-tester 测试10分!满分10!多棒的企业/个人邮件服务器,还担心会丢邮件吗?

其实有些人,觉得免费邮箱已经够用了,所以,此教程送给爱折腾、希望邮件自由的小伙伴们。

有什么问题可以加入搭建交流群:1051468604

有什么问题可以加入搭建交流群:1051468604

有什么问题可以加入搭建交流群:1051468604

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。