iRedMail的优点是安装方便简洁,缺点就是在搭建iRedMail之前,不能安装lnmp的环境,否则很有可能出现搭建错误的情况,并且安装的脚本并不会提示我们安装失败了,之后就会发生一系列玄学的事情,另一个缺点就是iRedMail安装完成后(在选择了安装web服务器的情况下),我们很难再在同一台服务器上搭建一个新的网站,如果搭建了一个新的网站,它会重定向到/mail,如果我们在对应网站子目录中添加/mail文件夹,它就会一直不停地跳转……(应该是我比较菜)
解决办法倒是有一个,就是我们在第三方邮件客户端添加我们这个邮件服务器的用户,代为收发(发件如果不正常,请重新修改第三方邮件客户端对我们这个用户的发件配置,把SSL全部打开),然后我们把现有的nginx配置备份(比如直接把/etc/nginx变成/etc/nginx_1),然后重新写入nginx配置(把nginx初始配置放入新的/etc/nginx中),以后如果需要修改邮箱配置,加载回原先的配置就可以了。
这里我们以hzxservice.com这个域名来进行配置
首先,搭建邮件服务器一般是设置二级域名mail.hzxservice.com,或者mx.hzxservice.com,(主域名hzxservice.com我们依旧可以使用来搭建网站)
首先,我们先添加一个A记录,名称设置为mail,ipv4地址填写我们服务器的IP地址,不要开启CDN
其余的域名解析我们稍后再添加,接下来我们配置以下服务器:
这里我们使用Ubuntu20.04TLS,确保lnmp环境一个都没装
这里我们需要下载curl和tar:
apt install curl tar -y
然后我们需要重新设置服务器的主机名:(配置文件为/etc/hostname)
打开/etc/hostname,然后将里面的内容更改为mail,保存退出
然后我们需要更改本地的DNS设置,在其中添加mail.hzxservice.com的解析设置:(配置文件为/etc/hosts)
打开/etc/hosts,然后添加如下内容:
127.0.0.1 mail.hzxservice.com mail
保存退出
然后重启服务器:
reboot
然后我们检查以下配置是否正确:
执行:
hostname
此时我们会看到短主机名:mail,
执行:
hostname -f
此时我们可以看到长主机名:mail.hzxservice.com
接下来,我们下载iRedMail并进行配置,这里我们使用1.5.2版本:
iRedMail 最新版下载:点击查看最新版
wget https://github.com/iredmail/iRedMail/archive/1.5.2.tar.gz -O /root/iRedMail.tar.gz
当然我们也可以直接git:
git clone https://github.com/iredmail/iRedMail.git
这两种方法都可以下载,如果我们采用的是第一种方法下载,我们还需要进行解压:
tar -xf iRedMail.tar.gz
下载完后(并解压完后),我们需要进入对应的文件夹,如果是第一种下载方法,文件夹为iRedMail-1.5.2,如果采用git的方法,文件夹为iRedMail,不知道的话可以用 ls 命令查看
我们进入这个文件夹,
然后运行脚本:
bash iRedMail.sh
第一个询问的是是否要继续安装,我们直接按回车
第二个询问的是安装目录,这里如果没有特殊需求,我们直接按回车
第三个询问的是是否要安装web服务器,这里我们选择安装(nginx那个),直接按回车
第四个询问的是选择的数据库类型,这里我们选择第二个MariaDB,(按↓,然后按空格选择,再按回车确定)
第五个是数据库密码,我们输入密码后按回车
第六个是设置域(不可与hostname相同),也就是@后面的那些,我们这里直接输入主域名:hzxservice.com
第七个是设置管理员密码,我们输入密码后按回车(管理员账号默认为postmaster@hzxservice.com)
第八个是选择要安装的组件,这里我们直接按回车
然后,根据系统提示,我们一直按y然后回车
安装完成后,我们重启服务器,
接下来我们需要为mail.hzxservice.com申请证书,证书申请
certbot certonly -d mail.hzxservice.com --nginx
证书的默认位置:/etc/letsencrypt/live/mail.hzxservice.com/
每个版本的iRedMail证书的位置可能不一样,这里我们先进入/etc/nginx/sites-available中
使用 ls 命令,查看ssl的配置文件
1.5.2版本的配置文件为00-default-ssl.conf
打开这个配置文件,我们可以看到:
server {
listen 443 ssl http2;
#listen [::]:443 ssl http2;
server_name mail.hzxservice.com;
root /var/www/html;
index index.php index.html;
include /etc/nginx/templates/misc.tmpl;
include /etc/nginx/templates/ssl.tmpl;
include /etc/nginx/templates/iredadmin.tmpl;
include /etc/nginx/templates/roundcube.tmpl;
include /etc/nginx/templates/sogo.tmpl;
include /etc/nginx/templates/netdata.tmpl;
include /etc/nginx/templates/php-catchall.tmpl;
include /etc/nginx/templates/stub_status.tmpl;
}
那么ssl的配置文件就是/etc/nginx/templates/ssl.tmpl,
我们打开/etc/nginx/templates/ssl.tmpl,
找到ssl_certificate,后面改成/etc/letsencrypt/live/mail.hzxservice.com/fullchain.pem
找到ssl_certificate_key,后面改成/etc/letsencrypt/live/mail.hzxservice.com/privkey.pem
保存退出,
重载服务:
service postfix reload;service dovecot reload;service nginx reload
或者:
systemctl restart nginx
接下来,我们要禁用掉iRedMail的灰名单,这个配置文件为:/opt/iredapd/settings.py
打开这个配置文件,找到:
plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]
将其中的”greylisting”这一项删去,
然后重启iredapd服务:
systemctl restart iredapd
然后我们可以正常访问邮件服务器的对应网站:
- https://你的域名/mail ——邮件登录地址
- https://你的域名/netdata ——服务器状态监控
- https://你的域名/iredadmin ——邮件服务器后台管理
- 管理员账号:postmaster@你的域 例如 postmaster@163.com
- 管理员密码:安装时候设置的密码
- 以上信息,可以在 /root/iRedMail-1.5.2/iRedMail.tips 文件中查看
接下来我们继续配置DNS解析
1.首先我们需要配置PTR反向解析,这就需要对应的服务器服务商支持了,这里我们用搬瓦工,搬瓦工,搬瓦工中文官网,(bandwagon)(三个网址任选一个,因为其他的可能会出问题,所以这里写了三个)
在搬瓦工中打开服务器的后台,在Main controls(一般打开之后就是这个页面,不需要重新更改),在这个页面中,找到PTR Records (Reverse DNS),我们选择set new record,我们输入mail.hzxservice.com,保存
PTR反向解析是支持从IP到域名的解析,设置完成后,我们可以在其他电脑上(LINUX、UNIX、MACOS、Windows系统都支持这个命令)使用nslookup命令,后面的参数为IP地址:
nslookup xxx.xxx.xxx.xxx
看这个命令能否找到对应的域名
2.接下来我们配置MX记录
MX纪律就是邮件的解析记录,我们需要配置根域名的MX记录为自己的邮件域名地址,优先级设置为10:
添加记录中,类型选择MX,名称使用@,内容(邮件服务器)为mail.hzxservice.com,优先级设置为10,保存
3.设置SPF记录
SPF记录时为了防止垃圾邮件而设定的,告知收件方,从设置的允许列表发出的邮件都是合法的:
添加记录中,类型选择TXT,名称使用@,内容设置为:
v=spf1 ip4:服务器的IPv4地址 ~all
或者:
v=spf1 mx ~all
检测方式:
nslookup -type=txgt hzxservice.com
4.设置DKIM记录
DKIM可以避免被判定为垃圾邮件,DKIM属于一种类似加密签名的解析记录,只有包含此加密数据,且公钥与密钥相匹配才属于合法邮件,要设置DKIM记录,首先要查询DKIM信息:
打开iRedMail配置文件iRedMail.tips,这里的路径为:/root/iRedMail-1.5.2/iRedMail.tips
我们需要将所有的双引号和中间的空格、换行都去掉,(最前面的双引号[和括号],最后面的双引号和括号都要去掉),得到的就是DKIM数据,
添加解析中,类型为TXT,名称为dkim._domainkey,内容为我们的DKIM数据
测试方式:
nslookup -type=text dkim._domainkey.hzxservice.com
5.设置DMARC记录
DMARC记录时当收件方检测到伪造邮件等行为时,将根据您的配置进行操作的一个记录,比如拒绝邮件或放入垃圾邮件以及不做处理等,同时会反馈一份检测报告到配置的邮箱地址内。
添加记录中,类型为TXT,名称为_dmarc,内容为:
v=DMARC1; p=none; pct=100; rua=mailto:dmarc@hzxservice.com
检测方式:
nslookup -type=txt _dmarc.hzxservice.com
DNS设置完成,接下来,我们添加iRedMail用户:
登录https://mail.hzxservice.com/iredadmin,用管理员用户登录(记得选择语言为中文(在登录页面上选择))
。。。。。。
测试邮件评分:https://www.mail-tester.com/
如果你是需要用其他客户端软件来收取或是发送邮件,端口列表在这里:
协议 | 地址 | 端口&加密端口 |
IAMP | 邮箱域名 | 143,993 |
POP3 | 邮箱域名 | 110,995 |
SMTP | 邮箱域名 | 25,587 |