用自己的域名作为邮箱的后缀,好看、有面子!只要域名不过期,那么,你的邮箱就永远存在!
邮件系统很多,宝塔自带的邮局更是简单,但是若想邮箱可靠(丢邮件、发送邮件进入对方垃圾箱等),还是需要花费一点功夫。
首先 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
更新系统、安装组件
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 文件中查看
安装证书脚本
apt-get install certbot
然后,即可申请免费的Let’s Encrypt证书:
certbot certonly --webroot -d mail.comefly.space -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安全证书。
灰名单(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
您需要设置一条TXT记录,将根域名(比如我这里的ailose.com)解析值设置如下。
内容为 v=spf1 mx ~all
DMARC记录的设置比较复杂,我们这里先简单设置一下,对于普通的域名邮箱足够使用了。以ailose.com域名为例,您需要添加一条TXT记录,将_dmarc.ailose.com (请不要遗漏dmarc前面的那个下划线)解析值设置为如下:
v=DMARC1; p=none; pct=100; rua=mailto:dmarc@
ailose.com
配置DKIM记录之前,我们先要生成DKIM密钥。在SSH中执行:
amavisd-new showkeys
将括号内的文本 去除引号以及空格并相连 就是咱们的 DKIM 数据,在解析中添加一条 dkim._domainkey
的 TXT 解析,内容就是咱们组合出的文本
Perfect!mail-tester
测试10分!满分10!多棒的企业/个人邮件服务器,还担心会丢邮件吗?
其实有些人,觉得免费邮箱已经够用了,所以,此教程送给爱折腾、希望邮件自由的小伙伴们。