使用 iredmail 搭建邮件系统
本文最后更新于 2024-08-17,
若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益, 请联系我 删除。
本站只有Telegram群组为唯一交流群组, 点击加入
文章内容有误?申请成为本站文章修订者或作者? 向站长提出申请
教给你如何搭建一个具有收发信能力的个人邮件平台!详细解读!
iredmail 官方文档:https://docs.iredmail.org/index-zh_CN.html
准备
- 1c2g 及以上规格的 VPS
1.1 需要开启端口:25 465 587 (SMTP发件及验证)
1.2 需要开启端口:143 993 995 (IMAP 收件)
1.3 最好支持 RDNS 解析记录(为 VPS IP 反向解析主机名)VULTR 就支持自助修改,但是IP的干净程度可能有点让人担忧 - 用于发件的域名(xxx@abc.com / xxx@xyz.abc.com 皆可)
- 对应的 SSL证书(单域名证书就可以,有泛域名证书固然是好的)
当你做好了以上准备之后,我们就可以开始搭建邮件服务器啦!
注意:大部分服务商禁止了 SMTP 发信端口,这种情况只需要向服务商申请即可(开工单还是发邮件看你了),申请的过程中服务商一般都会问你发什么样的邮件,基本都会拒绝商业群发邮件的请求(如果你想要寻找一个用于大量商业推广发件的平台,建议寻找一些现成的发件平台,而不是自建)
那么我们就开始吧!
1. 将邮件系统域名设置为主机名 ( FQDN )
输入命令 hostname -f
查看当前的主机名 确保主机名是你的邮件平台域名;例如我的域名是 poiblog.com
我的邮件系统是 mail.poiblog.com 那么我们的主机名就需要设置为 mail.poiblog.com
如果你的主机名不是你的邮件系统域名,则需要用以下方法更正:
hostnamectl set-hostname mail.poiblog.com
并将你的主机名添加至 /etc/hosts
条目 (/etc/hosts 里定义主机名和 IP 地址的对应关系)
127.0.0.1 mail.poiblog.com mail localhost localhost.localdomain
2. 下载最新版 iredmail
首先执行 apt install gzip tar -y
确保有必要软件包,并确保你正在用的是官方软件源。
然后点击 https://www.iredmail.org/download.html 找到 Stable 右键复制下载链接
到你的服务器去执行 wget (复制的链接)
然后 tar -xzvf 1.6.4.tar.gz
解压该文件并使用 cd iRedMail-1.6.4/
移动到解压后的目录
3. 运行安装程序
“现在可以运行 iRedMail 安装程序了,它会问你几个简单的问题,仅此而已。”
进入安装程序:
bash iRedMail.sh
(FinalShell 用户请注意:到这一步使用 FinalShell 的用户可能会乱码,建议 Finalshell 用户此时临时更换ssh客户端继续进行安装)
3.1 进入安装页面
3.2 选择邮件存储路径
3.3 选择网站容器(前端)
3.4 选择数据库,我这里选择的是 MySQL
3.5 设置 MySQL密码
3.6 设置发信域名(注意,这里和你的主机名需要不一样,这里设置的是 xxx@abc.com 的 abc.com,而主机名是作为邮件服务器为 abc.com 处理邮件的;这个 abc.com 可以是 xyz.abc.com)
3.7 设置管理员用户 postmaster@poiblog.com 的密码
3.8 选择安装的软件(webmail系统啊监控系统啊之类的,我这里全部勾选了 SOGo 会好看一点~)
3.9 确认开始安装 输入y即可确认
然后等待安装完成啦!
安装完成了怎么办?开始配置 DNS 记录和 SSL证书~
“邮件服务器最薄弱的环节是用户的弱密码,所以请一定强制你的用户使用强度高的密码。阅读 /root/iRedMail-x.y.z/iRedMail.tips
文件,它包含了:各个 web 程序的访问地址(URL),用户名和密码。”
所有配置文件的目录请见官方文档:https://docs.iredmail.org/file.locations.html
4. 开始设置 DNS 解析记录
- 设置邮件服务器的 A 记录:其实就是把 mail.poiblog.com 指向你 VPS 的IP(你设置的主机名)
- 设置 MX 记录
2.1 如果你要为 xxx@poiblog.com 设置解析记录,那么请将 主机名为 @ 的 MX 记录值指向 mail.poiblog.com,相反如果你要为 xxx@xyz.poiblog.com 设置解析记录那么请将主机名为 @ 的 MX 记录指向 mail.poiblog.com
2.2 优先级默认为 10 - 设置 SPF 记录(限制发信主机名)
3.1 新建一条主机名为 @ 的 TXT 记录内容为v=spf1 mx -all
意味着仅允许 mx 记录的邮件服务器发件 。
3.2-all
表示禁止从所有其他服务器发送电子邮件,~all
表示没那么严格,从其他主机发出的邮件将被标记为“不安全”
3.3 注意:不可将 -/~all 替换成 +all ,+all 表示任何人都可以使用此域名发件 - 设置 smtp/imap.poiblog.com(这个看个人是否有这样的需求,如果有的话意味着你可能需要泛域名证书或为 Postfix 和 Dovcot 设置单独的证书)
- DKIM 解析记录:
5.1 查看本地值(就像是申请ssl证书使用的csr一样)
amavisd-new showkeys
(部分其他OS 可能会使用 amavisd 代替 amavisd-new)
如果提示/etc/amavisd.conf not found
那就带上你的绝对路径:amavisd-new -c /etc/amavisd/amavisd.conf showkeys
输出内容:
root@mail:~/iRedMail-1.6.4# amavisd-new showkeys; key#1 2048 bits, i=dkim, d=poiblog.com, /var/lib/dkim/poiblog.com.pemdkim._domainkey.poiblog.com. 3600 TXT ( "v=DKIM1; p=" "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyK0XQiDxKCzy5xbwPrFO" "hWOEBqJjXyXGK3nnQYFWXAheU9ZPZCIPRG1Gq5krQub2pTg6yg45Ksxt0lhhvBUP" "ZQtFsphZPCXWU+BvePdHxgH+V4eNhtackV2q58X16ccHh0tIaRMYCR+G0yQlEFX2" "mHWXmiD36QniSALd+zYDuApvc4vV3YyXrmRT5MYIaVMd9cXgMPC1LOw3mKDsRKq5" "df92b3fGocn495nPyi55AmHebQd4YhCveI9reRR6kWlhU4M6p4ytAhus6C0sDg0w" "Lmu9cfN0Xylrc+sAZJfa+mMG9kz2DR3KmVXRDHKNjqSziF9cR93fiQoVHtVOwwm4" "UwIDAQAB")root@mail:~/iRedMail-1.6.4#
我们只需把换行内容和 "" 和最上面的提示删掉就好了(或使用网上的整理工具,本人用的是 http://www.ewomail.com/list-20.html ),本例中解析记录为
主机名:dkim._domainkey记录类型:TXT记录值:v=DKIM1;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyK0XQiDxKCzy5xbwPrFOhWOEBqJjXyXGK3nnQYFWXAheU9ZPZCIPRG1Gq5krQub2pTg6yg45Ksxt0lhhvBUPZQtFsphZPCXWU+BvePdHxgH+V4eNhtackV2q58X16ccHh0tIaRMYCR+G0yQlEFX2mHWXmiD36QniSALd+zYDuApvc4vV3YyXrmRT5MYIaVMd9cXgMPC1LOw3mKDsRKq5df92b3fGocn495nPyi55AmHebQd4YhCveI9reRR6kWlhU4M6p4ytAhus6C0sDg0wLmu9cfN0Xylrc+sAZJfa+mMG9kz2DR3KmVXRDHKNjqSziF9cR93fiQoVHtVOwwm4UwIDAQAB
5.2 本地检查
amavisd-new testkeys
如果输出内容如下(提示 pass)则设置成功!
root@mail:~/iRedMail-1.6.4# amavisd-new testkeysTESTING#1 poiblog.com: dkim._domainkey.poiblog.com => passroot@mail:~/iRedMail-1.6.4#
到此你的邮件服务器已经可以使用了!但是并不安全!也不规范!
更规范你的邮件服务器:设置 RDNS解析:
以本例为例,我们使用自己的 IP 段在 Cloudflare 管理反向解析,我们只需要添加 PTR 记录给对应 IP 和主机名就好了:
如果你使用公共云服务器:VULTR 之类的厂商支持自助设定 RDNS,在IP管理那边有个hostname就可以看到,改成你自己的 hostname就好了;更多厂商不支持自助设定,就开工单/发邮件告诉他们你的IP和需要设置的主机名就好了!
5. 设置 SSL 证书
本例只用到 mail.poiblog.com 所以只申请了 mail.poiblog.com 这个证书,所以只需要以下操作:
mv /etc/ssl/certs/iRedMail.crt{,.bak} # 备份原来的文件mv /etc/ssl/private/iRedMail.key{,.bak} # 备份原来的文件cp fullchain.pem(你的证书) /etc/ssl/certs/iRedMail.crtcp privkey.pem(你的私钥) /etc/ssl/private/iRedMail.key
设置完之后重启相关服务:systemctl restart nginx php-fpm postfix dovecot
就可以应用 SSL 证书啦!
然后你就可以使用域名访问 web面板啦,路径如下:
Roundcube 邮件前端: https://mail.poiblog.com/mail/SOGo 邮件前端: https://mail.poiblog.com/SOGoWeb 管理后台: httpS://mail.poiblog.com/iredadmin/
写在最后
客户端的使用不再赘述,IPv6配置不再赘述过程基本一样,用户可以去 Web 管理后台创建,到此你的邮件系统就完全安装好啦!可以自己去测试可用性!
常见的问题:端口未开放,dns解析记录未生效 | 这两个问题除外请回帖讨论!
希望这篇文章能解答各位的疑惑!