IRedMail 是一个开源的邮件服务器解决方案,它可以帮助您快速、简单地搭建一个功能齐全的邮件服务器。本教程将指导您如何在 Ubuntu 20.04 服务器上搭建 IRedMail 邮件服务器。其他系统请相应替换命令,要替换的命令文章中有说明(Ubuntu&Debian不用修改)支持的系统:下载iRedMail
系统要求
阿里云、腾讯云均禁止使用邮件服务所必须的 25 端口提供邮件服务,因此您不能在 它们的云服务器部署邮件服务器。
iRedMail 只针对全新安装的操作系统设计,它要求你的操作系统上 没有 事先 安装邮件服务相关的组件,例如 MySQL,OpenLDAP,Postfix,Amavisd,等。 iRedMail 会自动安装和配置邮件服务所需的组件,因此如果操作系统上已有相关 组件,iRedMail 可能会打乱你的配置并造成服务无法正常启动。
如果你没有域名可以点击此处注册
namesilo域名注册优惠码:ZYH8
- 一台安装了 Ubuntu 20.04 的服务器
- 至少 2GB RAM
- 至少 10GB 空闲硬盘空间
- 一个有效的域名(最好是.com)
- 建议将域名托管到cloudflare
- 检查服务器是否可以设置RDNS(PTR反向解析)
- 检查服务器是否开启25端口
telnet smtp.qq.com 25
#有以下输出则代表已经开启
root@mail:~# telnet smtp.qq.com 25
Trying 43.129.255.54...
Connected to smtp.qq.com.
Escape character is '^]'.
220 newxmesmtplogicsvrszb6-0.qq.com XMail Esmtp QQ Mail Server.
我知道的几个符合要求的VPS服务提供商有:RackNerd cloudcone(这两家都有优惠,自行谷歌)
第 1 步:更新系统
在开始安装 IRedMail 之前,请确保您的系统已更新到最新版本。在终端中运行以下命令:
sudo apt update
sudo apt upgrade -y
sudo reboot
CentOS:
#提示是否升级时输入y确认
yum update
第 2 步:为服务器设置一个完整域名(FQDN)的主机名
不管你的服务器将用于实际运行还是仅仅用作测试,都建议设置一个完整域名(FQDN)的主机名。
输入命令 hostname -f
查看当前的主机名
$ hostname -f
mx.example.com
在 Debian/Ubuntu 系统上,主机名需要在两个文件里设置:/etc/hostname
和 /etc/hosts
。
/etc/hostname
:短名称。
mx.example.com
/etc/hosts
里定义主机名和 IP 地址的对应关系。注意:一定要将 FQDN 主机名列在第一个。
127.0.0.1 mx.example.com mx localhost localhost.localdomain
确认系统已使用设置好的 FQDN 作为主机名。如果没有生效,请重启系统。
$ hostname -f
mx.example.com
启用 Debian/Ubuntu 默认的官方 apt 软件源
- iRedMail 依赖 Debian/Ubuntu 官方的 apt 软件源,请在
/etc/apt/sources.list
文件里启用它们。 - 安装
tar
和gzip
程序用于解压缩文件:
# sudo apt-get install tar gzip
第 3 步:下载并安装 IRedMail
从 IRedMail 官方网站下载最新版本的 IRedMail 安装脚本:(自行替换下载链接,目录,以当时的最新版为准)
wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.5.2.tar.gz
解压下载的文件:
tar zxvf 1.5.2.tar.gz
进入解压后的目录:
#查看文件夹名称
ls
cd iRedMail-1.5.2/
运行 IRedMail 安装脚本:
sudo bash iRedMail.sh
安装过程的截图
- 欢迎和感谢使用
- 指定用于存储用户邮箱的路径。默认是
/var/vmail/
。
- 选择用于存储邮件账号的数据库。
各个数据库之间没有太大区别,建议使用自己熟悉的数据库,便于后期维护。
- 如果选择 OpenLDAP 数据库用于存储邮件账号,安装程序会要求你输入 LDAP 前缀:
MySQL/MariaDB/PostgreSQL 用户
如果选择 MySQL/MariaDB/PostgreSQL 用于存储邮件账号, 安装程序会为数据库的 root 用户生成一个随机的强密码,安装完成后可以在 iRedMail.tips
文件里找到。
- 添加第一个邮件域名(这里直接填写你的域名example.com)
- 设置邮件管理员的密码
该账号即是邮件管理员,也是普通的邮件账号,可以登录管理后台和 webmail。
- 可选的组件(保持默认即可)
回答完上面的几个问题之后,安装程序给出本次安装的基本信息并要求确认是否实际 执行安装,请输入 y
或 Y
并按回车键确认,或 n
, N
并按回车键中止安装。
重启系统sudo reboot
第 4 步:配置 IRedMail
配置DNS(自行替换相关内容,这些示例符合一般应用场景)
设置 PTR 反向解析
检测方式:nslookup 8.8.8.8(服务器IP)
设置 A 记录
将 mail.example.com 的 A 记录指向你的 VPS 服务器(邮件服务器)
检测方式:nslookup mail.example.com
设置 MX 记录
MX 记录就是邮件的解析记录,非常重要的一条记录,配置根域名的 MX 记录为自己的邮件域名地址,优先级为 10
检测方式:nslookup -type=mx example.com
设置 SPF 记录
SPF 记录是为了防止垃圾邮件而设定的,告知收件方,从设置的允许列表中发出的邮件都是合法的,设置方式为添加一条根域名的 TXT 解析记录
内容为 v=spf1 mx ip4:your-sever-ip -all
检测方式:nslookup -type=txt example.com
设置 DKIM记录
DKIM 可说是避免被判定为垃圾邮件的一大利器,DKIM 属于一种类似加密签名的解析记录,只有包含此加密数据,且公钥与密钥相匹配才属于合法邮件,要设置 DKIM 记录,首先要查询 DKIM 信息。
查询DKIM 信息:
直接查看 /root/iRedMail-1.5.1/iRedMail.tips 文件,里面有相应的 DKIM,将括号内的文本去除引号以及空格并相连 ,就是咱们的 DKIM 数据,在解析中添加一条 dkim._domainkey 的 TXT 解析,内容就是咱们组合出的文本
测试方式:nslookup -type=txt dkim._domainkey.example.com
设置 DMARC 记录
DMARC 记录是当收件方检测到伪造邮件等行为时,将根据您的配置进行操作的一个记录,比如拒绝邮件或放入垃圾邮件以及不做处理等,同时会反馈一份检测报告到配置的邮箱地址内。
添加方法就是增加一条 _dmarc 的 TXT 解析,内容为:v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; adkim=s; aspf=s
检测方式:nslookup -type=txt _dmarc.example.com
申请证书
确保cloudflare代理小云朵是灰色
1.停止 Nginx 服务:
sudo systemctl stop nginx
2.安装 Certbot
对于 Ubuntu/Debian 系统:
sudo apt-get update
sudo apt-get install certbot
对于 CentOS/RHEL 系统:
sudo yum install epel-release
sudo yum install certbot
3.使用 Certbot 申请证书(自行替换相关内容)
sudo certbot certonly --standalone -d mail.example.com --email [email protected] --agree-tos --no-eff-email
4. 将证书文件和私钥文件复制到指定的位置
sudo cp /etc/letsencrypt/live/mail.example.com/fullchain.pem /etc/ssl/certs/iRedMail.crt
sudo cp /etc/letsencrypt/live/mail.example.com/privkey.pem /etc/ssl/private/iRedMail.key
5.设置证书自动续期
Let’s Encrypt 证书有效期为 90 天,因此您需要设置自动续期。编辑 /etc/crontab
文件,添加以下内容:
0 3 * * * root certbot renew --quiet && systemctl restart postfix dovecot nginx
上述内容表示每天凌晨 3 点运行 certbot renew
命令,如果证书已更新,则重启 Postfix 和 Dovecot 服务。
#重载服务,以应用更改
systemctl restart postfix dovecot nginx
第 5 步:配置防火墙
如果您的服务器启用了防火墙,请运行以下命令以允许邮件服务器相关的端口:
sudo ufw allow 25,80,110,143,443,465,587,993,995/tcp
第 6 步:选择性配置
如果服务器性能较低,可以考虑
禁用 iRedMail 灰名单
找到 VPS 文件,/opt/iredapd/settings.py
将其中的 ”greylisting ”
这项删去即可
plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]
然后,重启 iredapd
service iredapd restart
测试 iRedMail 邮件服务器
https://你的域名/mail ——邮件登录地址
https://你的域名/netdata ——服务器状态监控
https://你的域名/iredadmin ——邮件服务器后台管理
管理员账号:postmaster@你的域 例如 [email protected]
管理员密码:安装时候设置的密码
以上信息,可以在 /root/iRedMail-1.5.1/iRedMail.tips 文件中查看
登录你的邮件服务器,里面的三封邮件是系统发过来的。
尝试用该邮件发送以及接收其他邮件的邮件,若是严格按照上面来配置,应该是一点问题都没有。
最后,我们访问 https://www.mail-tester.com/
按照网页上面给出的邮箱地址,我们用刚才搭建好的邮件服务器给这个地址发送一封邮件,然后点击测试。
按照提示做适当的修改!
用刚才创建的用户,给 GMAIL 发一封邮件试试。
更多内容可以参考官方文档