前言
是否厌倦了其他邮箱复杂的域名?是否自己心仪的用户名总是被别人抢注?如果是,跟着我一步一步自己搭个邮局吧。用自己的域名作为邮箱的后缀,好看、有面子!只要域名不过期,那么,你的邮箱就永远存在!当然,你服务器也不能过期。
宝塔面板自带的邮局也可以使用,但是经常丢邮件,发件被丢入垃圾箱,搭建非常简单,但是使用非常不便。
首先 VPS 支持 PTR 反向解析,尤为重要,当然,也不是必须的,看你自己的取舍,
iRedMail 是一个免费、开源的项目,是成熟的邮件服务器系统,它拥有优秀的性能,全面实用的功能,且搭建方便、社区支持良好。
官方网站:https://www.iredmail.org/
项目介绍:https://github.com/iredmail/iRedMail
官方文档:https://docs.iredmail.org/install.iredmail.on.rhel-zh_CN.html
iRedMail 支持的系统
准备工作
1、干净的 VPS 一台,内存最好大于 1 GB,推荐 CentOS、Ubuntu,以下教程用 CentOS 演示,Ubuntu 请自行更换 yum 命令即可。我这里因为只有甲骨文,所以新建了一个1H1G的实例,用Centos 8 Stream的系统。
2、VPS 最好支持 PTR Records,否则会有
3、域名一个,推荐托管 cloudflare (解析生效快)
4、规划好作为邮件服务器的域名,演示用 mail.1aii.cn
,把该域名解析到 VPS IP。
搭建 iRedMail 邮件服务器
设置 VPS 以及系统
更新系统、安装组件
yum update -y
yum install wget curl sudo tar socat bind-utils -y
设置 VPS 主机名
1.系统需要一个 FQDN 主机名,使用下面的命令设置。使用你自定义的 FQDN 代替 mail.1aii.cn
。
hostnamectl set-hostname mail.1aii.cn
甲骨文的Centos修改主机名重启后恢复原名解决方法参考下文:
2.通过手动编辑 /etc/hosts,将机器的 FQDN 和短名称映射到机器的回环 IP 地址。添加如下所示的值,并相应替换 mail.1aii.cn
和 mail 的值。
127.0.0.1 mail.1aii.cn mail localhost localhost.localdomain
3.iRedMail 专家建议应该完全禁用 SELinux。通过编辑 /etc/selinux/config 并将 SELINUX 参数的值从 permissive 设置成 disabled 来禁用 SELinux。
SELINUX=disabled
4.上述操作完成后重启服务器以应用新的设置
reboot -f
5.设置完成后使用下面的命令验证系统主机名。
hostname -s
hostname -f
hostname -d
cat /etc/hostname
验证不通过检查第一二步操作。
下载并安装 iRedMail
我在搭建时,iRedMail 的最新版为 1.6.8,若是版本进行了更新,请大家自行修改下面命令中的版本号。
iRedMail 最新版下载:点击查看最新版
wget https://github.com/iredmail/iRedMail/archive/1.6.8.tar.gz -O /root/iRedMail.tar.gz
tar -xf iRedMail.tar.gz
cd iRedMail-1.6.8
bash iRedMail.sh
按照以下图片的提示进行安装,在下列操作中:
继续请按Enter,退出请按 Ctrl-C
设置安装目录
选择 web服务器
选择数据库类型
设置数据库密码
设置域,不可与 hostname 相同
设置管理员账号的密码
选择需要安装的组件
这一步结束后,后面的配置一路输入y
并回车
接下来是漫长的等待,直到看到下图,说明安装完成。
配置 iRedMail 邮件服务器
在准备工作的第四步中,我们已经将域名解析到服务器,如果还没做的话,现在去做。接下来我们开始申请证书。
申请证书
1:安装Certbot
要在邮件域中安装Let’s加密SSL,请启动通过安装Cerbot。
首先,应启用EPEL存储库:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
接下来,使用命令安装Cerbot:
yum install certbot
为您的邮件域执行验证
certbot certonly --webroot --dry-run -w /var/www/html -d mail.1aii.cn
提示Enter ‘C’ to cancel时输入邮箱,按C退出。出现上图说明验证成功。
2:安装加密SSL
如果上一步中的验证返回成功的结果,请继续请求证书
certbot certonly --webroot -w /var/www/html -d mail.1aii.cn
接下来,必须更改目录的权限:
chmod 0644 /etc/letsencrypt/{live,archive}
将iRedMail安装程序生成的默认证书和密钥文件重命名为.bak。
mv /etc/pki/tls/certs/iRedMail.crt{,.bak}
mv /etc/pki/tls/private/iRedMail.key{,.bak}
mv /etc/ssl/certs/iRedMail.crt{,.bak}
mv /etc/ssl/private/iRedMail.key{,.bak}
然后,创建符号链接到Let在IredMail安装期间创建的文件中的文件加密文件
ln -s /etc/letsencrypt/live/mail.1aii.cn/fullchain.pem /etc/pki/tls/certs/iRedMail.crt
ln -s /etc/letsencrypt/live/mail.1aii.cn/privkey.pem /etc/pki/tls/private/iRedMail.key
ln -s /etc/letsencrypt/live/mail.1aii.cn/fullchain.pem /etc/ssl/certs/iRedMail.crt
ln -s /etc/letsencrypt/live/mail.1aii.cn/privkey.pem /etc/ssl/private/iRedMail.key
3:使用新证书
要开始使用Let的加密SSL证书,必须重新启动四个服务。最后两取决于您在iRedMail安装期间所做的选择:
systemctl restart dovecot
systemctl restart postfix
根据安装期间的选择,重新启动httpd(apache)或nginx,如果安装时是按照图片选择,直接复制命令运行:
systemctl restart nginx
根据您在安装期间的选择,重新启动MySQLD,MariaDB,PostgreSQL或Slapd(OpenLDAP)如果安装时是按照图片选择,直接复制命令运行:
systemctl restart mariadb
4:自动续订证书
1.创建续订脚本
vi certbot-renew.sh
输入以下内容保存
certbot renew --post-hook 'service postfix restart; service dovecot restart; service nginx restart'
2.创建crontab任务
sudo crontab -e
添加定时执行更新证书脚本的任务
0 3 1 * * certbot-renew.sh &>> certbot-renew.log
禁用 iRedMail 灰名单
找到 VPS 文件,/opt/iredapd/settings.py
plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]
将其中的 ”greylisting
” 这项删去即可,用root用户使用vi
命令进行编辑,按i
编辑完成以后按ESC
退出编辑模式,输入:wq!
强制保存退出。
然后,重启 iredapd
systemctl restart iredapd
配置域名 DNS 及解析
请对照图片进行操作
设置 PTR 反向解析
此处因为甲骨文免费服务不提供,跳过
设置 A 记录
将 mail.1aii.cn
的 A
记录指向你的 VPS 服务器(邮件服务器)
检测方式:nslookup mail.1aii.cn
这个记录在准备工作的第四步和申请证书的第二步中已经做过,可以跳过
设置 MX 记录
MX 记录就是邮件的解析记录,非常重要的一条记录,配置根域名的 MX
记录为自己的邮件域名地址,优先级为 10
检测方式:nslookup -type=mx 1aii.cn
设置 SPF 记录
SPF 记录是为了防止垃圾邮件而设定的,告知收件方,从设置的允许列表中发出的邮件都是合法的,设置方式为添加一条根域名的TXT
解析记录,将xxx.xxx.xxx.xxx
替换为你服务器的IP地址。
内容为 v=spf1 ip4:xxx.xxx.xxx.xxx ~all
检测方式:nslookup -type=txt 1aii.cn
设置 DKIM记录
DKIM 可说是避免被判定为垃圾邮件的一大利器,DKIM 属于一种类似加密签名的解析记录,只有包含此加密数据,且公钥与密钥相匹配才属于合法邮件,要设置 DKIM 记录,首先要查询 DKIM 信息。
查询DKIM 信息:
直接查看 /root/iRedMail-1.6.8/iRedMail.tips
文件,里面有相应的 DKIM
cat /root/iRedMail-1.6.8/iRedMail.tips
将括号内的文本 去除引号以及空格并相连 就是咱们的 DKIM 数据,在解析中添加一条 dkim._domainkey
的 TXT
解析,内容就是咱们组合出的文本。
测试方式:nslookup -type=txt dkim._domainkey.1aii.cn
设置 DMARC 记录
DMARC 记录是当收件方检测到伪造邮件等行为时,将根据您的配置进行操作的一个记录,比如拒绝邮件或放入垃圾邮件以及不做处理等,同时会反馈一份检测报告到配置的邮箱地址内。
添加方法就是增加一条 _dmarc
的 TXT
解析,内容为配置选项,v=DMARC1; p=none; pct=100; rua=mailto:dmarc@1aii.cn
检测方式:nslookup -type=txt _dmarc.1aii.cn
登录后台
可以通过访问
https://你的域名/mail ——邮件登录地址
https://你的域名/netdata ——服务器状态监控
https://你的域名/iredadmin ——邮件服务器后台管理
管理员账号:postmaster@你的域 例如 postmaster@1aii.cn
管理员密码:安装时候设置的密码
以上信息,可以在 /root/iRedMail-1.6.8/iRedMail.tips 文件中查看
登录后可以看到有4封系统邮件,里面包含了详细的配置信息和各端口信息。建议仔细阅读。
收发信成功
垃圾邮件得分测试
发信测试可以访问 https://www.mail-tester.com/
按照网页上面给出的邮箱地址,我们用刚才搭建好的邮件服务器给这个地址发送一封邮件,然后点击测试。
可以点开扣分项目,对错误的地方进行优化!
第三方客户端添加
如果你需要使用第三方客户端添加你的邮箱,请按以下设置操作。
协议 | 地址 | 端口&加密端口 |
IAMP | 邮箱域名 | 143&993 |
POP3 | 邮箱域名 | 110&995 |
SMTP | 邮箱域名 | 587&465 |
465
加密端口的话,需要进行一些其他设置,参考:官方文档
暂无评论内容