使用VPS自建邮局iredmail邮箱程序-以debian11为例
自己建设邮箱,使用自己的域名作为邮箱后缀,功能丰富,可以作为网站的系统发件邮箱或者自用都是比较合适的一种方式。
一、准备工作
1.域名1个,规划一个邮箱域名,一般直接是mail.baidu.com,解析A记录到VPS上。
2.VPS1个,内存最小最小不能小于1G。强烈建议能做DNS PTR 记录的,可以在VPS后台设置,或者询问域名服务商。
知识普及:
在邮件的交换记录中,有 A记录 和 PTR记录 两种,A记录大家应该是耳熟能详了,我们每天搭建服务、解析域名到 IP,用的就是 A记录,我们称为正向解析,用来映射域名到 IP
而 PTR记录,则是相反的,所以也被我们成为反向解析,他是用来把一个 IP 映射到域名。
二、开始搭建
在官网查看操作系统版本需求和最新的版本号,严格按照官方的要求安装对应的系统。这里推荐安装Debian11.iRedMail官网
1.Debian 系统升级并安装 Curl/wget/sudo:
apt update -y && apt install curl -y && apt install wget -y && apt install sudo -y
2.debian开启BBR,记得执行完重启reboot:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
3.首先,需要编辑 /etc/hosts
文件,找到含有你的 VPS IP 地址的那一行;如果没有,则添加一行。内容如下:
127.0.0.1 mail.baidu.com mail
4.然后,我们找到 VPS 的 /etc/hostname
文件,编辑里面的内容为 mail
,然后重启服务器
检查代码:
执行:hostname
此时我们应该只能看到短主机名 mail
. 如果你看到了长主机名 mail.baidu.com
, 说明之前设置错误,请重新检查上述步骤。
执行:hostname -f
此时,我们应该只能看到长主机名 mail.baidu.com
5.下载并安装 iRedMail,目前最新版是1.6.3
wget https://github.com/iredmail/iRedMail/archive/1.6.3.tar.gz -O /root/iRedMail.tar.gz
tar -xf iRedMail.tar.gz
cd iRedMail-1.6.3
bash iRedMail.sh
接下来是图形安装界面:
如上图,第一步直接yes回车
第二步设置安装目录直接默认回车
第三步选择 web服务器默认Nginx回车
第四步选择数据库类型选择MariaDB,回车
第五步设置数据库密码,自己设置,回车
第六步设置域,直接填baidu.com(写你自己的域名,这里是示意)
第七步设置管理员账号、密码,可以直接设置和数据库密码一样,方便记忆
第八步选择默认组件,直接默认回车
第九步预览配置
一路y回车,最后重启reboot
申请SSL证书
逐行执行以下代码,邮箱可以填你自己在用的邮箱。注意更改baidu.com为你自己的域名。
curl https://get.acme.sh | sh
~/.acme.sh/acme.sh --register-account -m xxxx@xxxx.com
~/.acme.sh/acme.sh --issue -d mail.baidu.com --webroot /var/www/html
~/.acme.sh/acme.sh --installcert -d mail.baidu.com --key-file /etc/ssl/private/iRedMail.key --fullchain-file /etc/ssl/certs/iRedMail.crt
重载服务
service postfix reload;service dovecot reload;service nginx reload
创建一个 cron 作业以自动更新 续订Let’s Encrypt 证书:
sudo crontab -e
如果提示选择编辑器,随便选择一个,然后粘贴或者手动增加以下代码
# Renew Let's Encrypt certs
15 3 * * * /usr/bin/certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
reboot重启服务器
配置域名 DNS 及解析
1.配置PTR DNS 记录:
各VPS商家PTR记录添加方式不一样的,但是找到了填写的地方,直接将IP对应填写域名mail.baidu.com
2.设置A记录:
别忘记将mail.baidu.com解析到你的VPS上
3.设置MX记录:
在你的域名解析面板添加一个MX解析记录,主机名那里留空或者@,类型选择MX,TTL默认,优先级10,记录就是mail.baidu.com
4.设置SPF记录:
主机名那里留空或者@,类型选择TXT,TTL默认,记录填写v=spf1 mx ~all
5.设置DKIM记录:
查看 /root/iRedMail-1.4.2/iRedMail.tips
文件,里面有相应的 DKIM
如上图这一段,需要将括号内的文本 去除引号以及空格并相连 就是咱们的 DKIM 数据。需要复制出来这行文本到TXT里面编辑,去掉所有的双引号和空格,还有最后的那个半括号),使其为一条数据。
域名解析那里,主机名填dkim._domainkey
,类型选择TXT,TTL默认,记录填写刚才编辑好的DKIM数据
6.设置DMARC记录:
主机名填_dmarc
,类型选择TXT,TTL默认,记录填写v=DMARC1; p=none; pct=100; rua=mailto:dmarc@baidu.com
,记得替换最后为你的域名。
优化 iRedMail 邮件服务器
1.禁用 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
” 这项删去,记得包括双引号和逗号
然后,重启 iredapd
service iredapd restart
2.禁用反病毒 clamav
由于 iredmail 安装时会一起安装病毒扫描程序 ClamAV,而 ClamAV 会占用所有可能的内存,除非你的服务器有着足够的内存。要不然对于内存比较小的服务器来说,那就是噩梦。
在 Postfix 配置文件 /etc/postfix/main.cf
中保留content_filter = smtp-amavis:[127.0.0.1]:10024
在 Amavisd 配置文件 /etc/amavis/conf.d/50-user
中找到以下行
# @bypass_virus_checks_maps = (1);
# @bypass_spam_checks_maps = (1);
取消上述行的注释(删除每行开头的“#”),如果括号数字为 (0)
就改为(1)
同一 Amavisd 配置文件中的另一个位置:
$policy_bank{'ORIGINATING'} = {
...
# Bypass checks
#bypass_spam_checks_maps => [1], # don't check spam
#bypass_virus_checks_maps => [1], # don't check virus
#bypass_banned_checks_maps => [1], # don't check banned file names and types
#bypass_header_checks_maps => [1], # don't check bad header
};
取消 # Bypass checks
以下四行的注释(删除每行开头的“#”)以禁用垃圾邮件 / 病毒扫描。
重新启动 Amavisd 服务:
/etc/init.d/amavis restart
禁止 ClamAV 自启动
systemctl mask clamav-daemon clamav-freshclam
大功告成
https://你的域名/mail ——邮件登录地址
https://你的域名/netdata ——服务器状态监控
https://你的域名/iredadmin ——邮件服务器后台管理
管理员账号:postmaster@你的域 例如 postmaster@163.com
管理员密码:安装时候设置的密码
以上信息,可以在 /root/iRedMail-1.4.2/iRedMail.tips 文件中查看
首先,我们可以用管理员账号登录https://mail.baidu.com/mail 可以实现收发邮件。
我们访问 https://www.mail-tester.com/,按照网页上面给出的邮箱地址,我们用刚才搭建好的邮件服务器给这个地址发送一封邮件,然后点击测试。
按照上述架设教程,基本得分能得到满分10分。
访问https://你的域名/iredadmin进入管理后台,仍然用管理员账号登录,点击添加,即可添加邮箱用户。
如果你是需要用其他客户端软件来收取或是发送邮件,端口列表在这里:
协议 | 地址 | 端口&加密端口 |
IAMP | 邮箱域名 | 143,993 |
POP3 | 邮箱域名 | 110,995 |
SMTP | 邮箱域名 | 25,587 |
我这边用的 “网易邮件大师”,可以完美的收发邮件,客户端如下配置: