时间:2023.08.08
环境:Stream 9 iRedmail 1.6.3 支持及推荐的系统请查看官网
目的:iRedmail安装及配置
说明:本文详细介绍了开源邮箱服务iRedmail的安装及常规配置 对于更详细的配置和说明请查阅官网
作者:Zhong
准备工作
在域名服务商购买域名 准备一台云服务器/物理机(推荐
纯净系统
不要安装有nginx、postgres等软件以免造成干扰)
域名:假设为 zhong.com 邮箱域名指定为mail.zhong.com
使用具有管理员权限的账户操作 本文使用root
服务器配置
系统更新
更新软件
yum update -y
# or
yum upgrade -y
修改主机名
查看主机名
hostname -f
设置主机名 前缀可按照自己要求指定
hostnamectl set-hostname mail.zhong.com
也可以编辑配置文件修改 推荐
vim /etc/hostname
# 修改为如下内容
mail
修改hosts文件 在127.0.0.1 后面增加 mail.zhong.com mail 配置 注意:要将 FQDN 主机名列在第一个。意思是127.0.0.1后面紧跟FQDN主机名
vim /etc/hosts
# 修改为如下
127.0.0.1 mail.zhong.com mail localhost localhost.localdomain
可以重启系统来检查是否已更改主机名称 运行hostname 显示mail 运行hostname -f 显示mail.zhong.com说明配置正确
禁用 SELinux
iRedMail 不支持 SELinux,所以需要在 /etc/selinux/config 文件里禁用它。 不同系统方式略有差异
vim /etc/selinux/config
# 修改SELINUX为如下
SELINUX=disabled
如果不希望禁用 SELinux,可以设置为让它打印警告信息但不强制限制
SELINUX=permissive
也可以无须重启服务就禁用它
setenforce 0
note: SELinux也不是必须配置的 iRedmail安装过程中会询问是否使用SELinux
安装
下载安装包
在官网页面或github下载最新版iRedmail 本文使用iRedmail1.6.3版本
可下载到本地再上传到服务器 也可以使用命令直接下载到服务器
wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.6.3.tar.gz
解压文件
tar zxf iRedMail-1.6.3.tar.gz
运行 iRedMail 安装程序
cd iRedMail-1.6.3/
bash iRedMail.sh
note: 如果是在 CentOS 8 系统上安装,iRedMail 安装程序会使用 pip2 命令安装几个 Python-2 的模块,国内用户请指定镜像站点完成安装,否则可能会因网络问题 导致安装失败 执行如下
sudo PIP_MIRROR_SITE='http://pypi.douban.com/simple/' PIP_TRUSTED_HOST=pypi.douban.com bash iRedMail.sh
等待依赖下载完成 根据提示输入Yes进入安装程序
默认邮件存储路径
Next 执行下一步
web server
选择Nginx Next 进入下一步
账户存储后端
根据实际需求选择 本文这儿选PostgreSQL Next进入下一步
数据库管理密码
输入密码
first mail domain name
iRedmail支持多域名 这儿输入第一个域名
zhong.com
Next进入下一步
mail domain administrtor password
设置管理密码 Next进入下一步
可选组件
全选上即可
主要配置一览表
确认输入
y
安装完成后
安装完成后你必须知道的几个重要事项
- 邮件服务器最薄弱的环节是用户的弱密码,所以请一定强制你的用户使用强度高的密码。
- 阅读
/root/iRedMail-x.y.z/iRedMail.tips 文件,它包含了:
-
- 各个 web 程序的访问地址(URL),用户名和密码。
-
各个组件的配置文件路径。除此之外还应该阅读文档:
Locations of configuration and log files of major components
. - 以及其它一些重要和敏感信息
- 设置 DNS 记录
- 如何配置邮件客户端程序
-
强烈建议获取 SSL 证书以避免每次访问 web 程序时烦人的自签名 SSL 证书警告,
Let’s Encrypt 提供免费的 SSL 证书
。可根据该文档 配置获取的证书:
use a SSL certificate
. -
如果需要批量添加邮件账号,可以参考以下针对不同数据库的批量建账号的文档:
OpenLDAP
,
MySQL/MariaDB/PostgreSQL
。 -
如果这是一台繁忙的服务器,这里有
一些提升性能的建议
。
安装完重启
配置
证书
测试验证 多个域名使用,分开
apt install certbot
certbot certonly --webroot --dry-run -w /var/www/html -d mail.zhong.com
根据提示输入邮箱如
postmaster@zhongsdjn.com
A yes no
如果验证无问题 那么执行下面的命令 进行真正的证书申请 可使用–cert-name指定名称
certbot certonly --webroot -w /var/www/html -d mail.zhong.com --cert-name zhong.com.cert
根据提示最好做好备份
修改文件权限
chmod 0755 /etc/letsencrypt/{live,archive}
自动更新证书
证书有效期大概3个月 可执行 certbot renew 重新生成证书 重启iRedmail服务以生效新的证书
可使用系统定时任务自动更新证书和重启服务 任务在每月的1号的5:01 AM执行 替换对应的域名
crontab -e
# 底部添加如下内容 替换对应你的域名即可
1 5 1 * * certbot renew --post-hook 'ln -sf /etc/letsencrypt/live/mail.zhong.com/privkey.pem /opt/iredmail/ssl/key.pem; /usr/sbin/service postfix restart; /usr/sbin/service nginx restart;
/usr/sbin/service dovecot restart'
Use Let’s Encrypt cert
Create symbol links 替换对应的域名
# On Debian/Ubuntu, FreeBSD and OpenBSD
mv /etc/ssl/certs/iRedMail.crt{,.bak} # Backup. Rename iRedMail.crt to iRedMail.crt.bak
mv /etc/ssl/private/iRedMail.key{,.bak} # Backup. Rename iRedMail.key to iRedMail.key.bak
ln -s /etc/letsencrypt/live/mail.zhong.com/fullchain.pem /etc/ssl/certs/iRedMail.crt
ln -s /etc/letsencrypt/live/mail.zhong.com/privkey.pem /etc/ssl/private/iRedMail.key
# On RHEL/CentOS
mv /etc/pki/tls/certs/iRedMail.crt{,.bak} # Backup. Rename iRedMail.crt to iRedMail.crt.bak
mv /etc/pki/tls/private/iRedMail.key{,.bak} # Backup. Rename iRedMail.key to iRedMail.key.bak
ln -s /etc/letsencrypt/live/mail.zhong.com/fullchain.pem /etc/pki/tls/certs/iRedMail.crt
ln -s /etc/letsencrypt/live/mail.zhong.com/privkey.pem /etc/pki/tls/private/iRedMail.key
Restart services
/usr/sbin/service postfix restart
/usr/sbin/service nginx restart
/usr/sbin/service dovecot restart
Depends on the backend you chose during iRedMail installation, you may need to restart
# MySQL or MariaDB
# PostgreSQL
systemctl restart postgresql.service
# OpenLDAP
禁用 iRedMail 灰名单
1、/opt/iredapd/settings.py
找到以下内容 将其中的 ”greylisting ” 这项删去即可
plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]
2、To disable greylisting global, please run command below
python3 /opt/iredapd/tools/greylisting_admin.py --disable --from '@.'
重启服务
service iredapd restart
防火墙放开端口
查看防火墙状态
// ubuntu20
ufw status
// centos
systemctl status firewalld
# or
firewall-cmd --state
各端口及作用如下
- 80: HTTP
- 443: HTTPS
- 25: SMTP
- 465: SMTPS (SMTP over SSL)
- 587: SUBMISSION (SMTP over TLS)
- 143: IMAP over TLS
- 993: IMAP over SSL
- 110: POP3 over TLS
- 995: POP3 over SSL
- 4190: Managesieve service
根据需求放开响应端口 如不清楚可放开以上所有端口
物理机通过防火墙放开端口 如有交换机等前置安全设备需一同放开
云服务器通过安全策略放开端口 25 端口很多需要提交工单由服务商来放开 具体请咨询服务商
设置 DNS 记录
域名解析 Setup DNS records for your iRedMail server (A, PTR, MX, SPF, DKIM, DMARC)
A
|
A |
默认 |
your ip |
10 分钟 |
正常 |
备注 |
修改暂停删除备注 |
MX
@ |
MX |
默认 |
mail.zhong.com | 10 |
10 分钟 |
正常 |
修改暂停删除备注 |
PTR
@ |
TXT |
默认 |
v=spf1 mx ip4:your ip -all |
10 分钟 |
正常 |
修改暂停删除备注 |
SPF
@ |
TXT |
默认 |
v=spf1 mx ip4:your ip -all |
10 分钟 |
正常 |
修改暂停删除备注 |
DKIM
查看keys
// Ubuntu
amavisd showkeys
// or
amavisd-new showkeys
// Stream On CentOS, if it complains /etc/amavisd.conf not found, please run the command with path to its config file. For example:
amavisd -c /etc/amavisd/amavisd.conf showkeys
Copy output of command above into one line like below, remove all quotes, but keep ;. we just need strings inside the () block, it’s the value of DKIM DNS record. like this
v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxPy9viPs2PdWFfqg7aWuX/lI1dJ6t7DOEu7ygilsBefKFAewjlP3bC5W3v87zNeMZ7H3u1MvBaKeZhNlHz/C
rqXhsMz34eKUqrcvEoHNnq22z2U5M2NZr1r9OgA6YGmQjeXshU1cxAfUOTHmsNzj0F9Us7J5Y8GPwnGmOXs650UNjb8vobYMLVRIjzK0IBB85r2GStCEoKUilTnwVDBdivfv9oqCWpyQe7iUON/0DCWjHo0ITAHoaFuwSf85Q4zYxXrIuW35nqXiiOAR8hX6+zD2U+Oj7/SByYgxtQWc3xnYhLLVZkeRW3jFPFd4FdEA3IY1Ypnp2nAkKcrlVnQrMwIDAQAB
按照以下格式和类型设置
dkim._domainkey |
TXT |
默认 |
v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYArsr2BKbdhv9efugBy… |
10 分钟 |
正常 |
修改暂停删除备注 |
验证 _domainkey.mydomain.com替换为对应的实际值
dig -t txt dkim._domainkey.zhong.com
// or
nslookup -type=txt dkim._domainkey.zhong.com
Amavisd验证
amavisd testkeys
// or
amavisd-new testkeys
修改邮件附件大小
默认附件限制为10MB
要修改邮件附件大小,需要修改三个地方。
客户端如Outlook/thunderbird
修改 postfix 中邮件大小的设置 100MB = 100 * 1024 * 1024 由于编码原因 实际设置值可大于此值如120MB = 125829120
postconf -e message_size_limit='104857600'
postconf -e mailbox_size_limit='104857600'
重启 Postfix 服务,使上述修改生效
/etc/init.d/postfix restart
// or
service postfix restart
Roundcube 网页邮箱的附件上传大小
如果使用 Roundcube 网页邮箱,需要额外更改两个地方
- 修改 PHP 设置允许上传大附件
修改 PHP 配置文件 /etc/php.ini 中的 memory_limit, upload_max_filesize 和 post_max_size 三个参数
memory_limit = 200M;
upload_max_filesize = 100M;
post_max_size = 100M;
重启nginx
systemctl restart nginx.service
修改 Roundcube 网页邮箱设置以允许上传大附件
修改 roundcube 目录下的 .htaccess 文件:
在 RHEL/CentOS 系统上,此文件路径为 /var/www/roundcubemail/.htaccess
在 Debian/Ubuntu 系统上,此文件路径为 /usr/share/apache2/roundcubemail/.htaccess 或者 /opt/www/roundcubemail/.htaccess.
在 FreeBSD 系统上,此文件路径为 /usr/local/www/roundcubemail/.htaccess
在 OpenBSD 系统上,此文件路径为 /var/www/roundcubemail/.htaccess
注意:某些 Linux/BSD 发行版本可能没有 .htaccess 文件,此时你可以忽略此步骤。
此处使用的CentOS-Stream-9-20230501.0-x86_64-dvd1镜像 修改/opt/www/roundcubemail/.htaccess文件即可
php_value memory_limit 200M
php_value upload_max_filesize 100M
php_value post_max_size 100M
测试之后上面的配置如果不是可行的方案 请按如下进行配置可生效
sudo vim /opt/www/roundcubemail-1.5.3/config/config.inc.php
// 修改为下面
$config['max_message_size'] = '150M';
重启 Apache(Apache was dropped since iRedMail-0.9.8) 或 php-fpm 服务以使上述修改生效
service php-fpm restart
// ubuntu20 php7.4-fpm
systemctl restart php7.4-fpm
设置客户端
在安装完成后会向管理员邮箱发送邮件 其中一封会提到客户端端口的配置
网易邮箱大师配置
选择POP3 发信/收信服务器 mail.zhong.com
访问 webmail 和其它 web 程序
安装完成后,可以通过以下 URL 访问相关程序。注意:请将 替换为实际的 服务器地址。
- Roundcube webmail: https://your_server/mail/ 邮箱
- SOGo Groupware: https://your_server/SOGo
- Web 管理后台: httpS://your_server/iredadmin/
- Awstats: httpS://your_server/awstats/awstats.pl?config=web (or
?config=smtp for SMTP log)
服务管理
重启服务
// php-fpm服务 PHP-FPM(PHP FastCGI Process Manager)是一个用于管理 PHP FastCGI 进程的程序。
systemctl restart php8.1-fpm.service
// Postfix服务 开源邮件传输代理/处理电子邮件的路由、投递和传输。
systemctl restart postfix
// nginx服务
systemctl restart nginx
// dovecot服务 邮件接收和投递/邮件存储/用户认证和安全/邮件过滤和归档
systemctl restart dovecot.service
// iredapd
service iredapd restart
// netdata
systemctl restart netdata
// 防火墙
ufw reload // Ubuntu22
systemctl status firewalld.service // Stream9
fail2ban服务
// 关闭服务
systemctl stop fail2ban
// 查看状态
systemctl status fail2ban
Fail2Ban是一个用于保护计算机系统免受恶意攻击的开源软件。它通过监视系统的日志文件,查找具有恶意行为的IP地址,并自动配置防火墙规则来禁止它们的访问。
Fail2Ban的工作原理如下:
- 监视日志文件:Fail2Ban会监视系统的日志文件,例如登录文件(如/var/log/auth.log)和Web服务器日志(如/var/log/apache/access.log)等,以查找异常活动。
- 检测恶意行为:Fail2Ban会搜索日志文件以查找配置的恶意行为模式,例如多次登录失败、尝试访问不存在的URL等等。
- 封禁IP地址:一旦Fail2Ban检测到恶意行为,它会自动将相关IP地址添加到系统的防火墙规则中,从而禁止该IP地址的访问。
- 解封IP地址:Fail2Ban还具有自动解封功能,可以在一定时间后自动解禁被封禁的IP地址,以防止误封合法用户。
通过使用Fail2Ban,系统管理员可以减少恶意攻击的风险,提高系统的安全性。它可以防止暴力破解密码、DDoS攻击、恶意爬虫等类型的攻击。但请注意,Fail2Ban只是一种辅助工具,不能完全保证系统的安全,因此仍然需要其他安全措施的配合,如使用强密码、定期更新系统补丁等。
备份和恢复
备份数据
iRedmail指定了定时任务备份数据库数据
为了数据安全 参照官网备份和恢复数据的文档 我们可以备份数据到远程服务器(异地备份) 这样当iRedmail所在服务器发生异常或磁盘损坏等情况时 也能保证核心数据可恢复 可以通过rsync工具来实现 我们主要备份数据库数据和邮件数据 其它数据如DKIM keys/SOGo/OpenLDAP backend可根据情况自行备份
新建凭证文件如 screts.pas 本文为/etc/rsync/screts.pas 写入用户名和密码(作为客户端访问认证凭据 可随意)
vim /etc/rsync/screts.pas
# 写入以下内容
jh:000Axiba
ll查看screts.pas文件属性是否是-rw——-. 1 root root 如若不是使用chmod 600 screts.pas来修改属性
修改/etc/rsyncd.conf文件为如下类似内容(可根据需要变化)
# /etc/rsyncd: configuration file for rsync daemon mode
# See rsyncd.conf man page for more options.
# configuration example:
uid = root
gid = root
use chroot = no
port 873
max connections = 4
pid file = /var/run/rsyncd.pid
exclude = lost+found/
# transfer logging = yes
timeout = 900
ignore nonreadable = yes
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
# [ftp]
# path = /home/ftp
# comment = ftp export area
[vmail_backup]
path = /var/vmail/vmail1
#comment 为描述说明
comment = backup_mail_file
list=yes
read only=yes
ignore errors
#认证用户 和系统用户无关 作为rsync工具认证使用
auth users = jh
#密码文件
secrets file = /etc/rsync/screts.pas
[mail_accounts_backup]
path = /var/vmail/backup
comment = backup_accounts
list=yes
ignore errors
auth users = jh
secrets file = /etc/rsync/screts.pas
以上文件指定了两个备份文件路径 /var/vmail/vmail1和/var/vmail/backup 接下来启动服务
rsync --daemon --config=/etc/rsyncd.conf
下面在远程服务器上使用rsync(如果不存在那么安装即可)工具备份
在/root/email_backup目录下新建passwd文件 写入对应iRedmail服务器rsync服务的密码
vim /root/email_backup/passwd
# 写入下面的内容
000Axiba
ll查看passwd文件属性是否是-rw——-. 1 root root 如若不是使用chmod 600 passwd来修改属性
新建一个脚本文件如 /root/email_backup/mail_backup.sh 写入如下的内容
#!/bin/bash
WORKDIR_PATH="/root/email_backup"
# 定义日期前缀
DATE_PREFIX=$(date +%Y-%m-%d)
# 本地密钥文件信息
PASSWD_PATH="/root/email_backup/passwd"
# 远程服务器信息
REMOTE_USER="jh"
REMOTE_HOST="192.168.1.168"
VMAIL_REMOTE_DIRECTORY="vmail_backup"
MAIL_ACCOUNTS_REMOTE_DIRECTORY="mail_accounts_backup"
# 本地目标路径
VMAIL_DESTINATION_DIRECTORY="/root/email_backup/vmail"
MAIL_ACCOUNTS_DESTINATION_DIRECTORY="/root/email_backup/mail_accounts"
# 执行rsync备份到本地目录
rsync -avz --password-file=${PASSWD_PATH} ${REMOTE_USER}@${REMOTE_HOST}::${VMAIL_REMOTE_DIRECTORY} ${VMAIL_DESTINATION_DIRECTORY}
# 压缩备份文件并添加日期前缀
tar -czvf ${WORKDIR_PATH}/${DATE_PREFIX}_vmail.tar.gz ${VMAIL_DESTINATION_DIRECTORY}/*
# 移除原始备份文件(可选步骤,根据需求选择是否保留)
rm -rf ${VMAIL_DESTINATION_DIRECTORY}/*
rsync -avz --password-file=${PASSWD_PATH} ${REMOTE_USER}@${REMOTE_HOST}::${MAIL_ACCOUNTS_REMOTE_DIRECTORY} ${MAIL_ACCOUNTS_DESTINATION_DIRECTORY}
tar -czvf ${WORKDIR_PATH}/${DATE_PREFIX}_accounts.tar.gz ${MAIL_ACCOUNTS_DESTINATION_DIRECTORY}/*
rm -rf ${MAIL_ACCOUNTS_DESTINATION_DIRECTORY}/*
以上文件192.168.1.168为远程iRedmail服务器的ip 定义了按当前日期备份远程服务器的邮件文件和数据库文件 压缩后删除源文件
给文件赋予可执行权限 并执行一次
chmod +x /root/email_backup/mail_backup.sh
/root/email_backup/mail_backup.sh
此时在/root/email_backup/目录就能看到已备份的文件了
我们把它做成系统定时任务 每天定时执行 并删除超过12天的备份文件
crontab -e
# 写入以下的内容
00 06 * * * /root/email_backup/mail_backup.sh
36 22 * * * find /root/email_backup/ -mtime +12 -name "*tar.gz" -exec rm -rf {} \;
恢复数据
假设在另一台以上面方式已安装好iRedmail(同版本/高版本可根据升级文档做修改即可)的服务器上恢复数据 此服务器作为备份环境 数据库本文依然以postgresSQL为例 其它数据库如MariaDB和OpenLDAP等操作语句略有不同
解压备份的文件 如2023-08-08_accounts.tar.gz和2023-08-08_vmail.tar.gz
tar zxvf 2023-08-08_accounts.tar.gz
tar zxvf 2023-08-08_vmail.tar.gz
进入解压后的文件找到mail_accounts/pgsql目录 在里面选择一个需要恢复的数据 一般是最后一次的备份文件 如2023/08/08
使用bunzip2逐个对*.sql.bz2文件解压 得到sql文件
bunzip2 amavisd-2023-08-08-03-01-01.sql.bz2
bunzip2 ... ...
... ...
导入备份的sql数据
note: 导入前可以先删除vmail备份文件里的postmaster数据 也可以导入后删除记录 不然表里会有两条postmaster记录
psql -U postgres -h localhost -d amavisd -f amavisd-2023-08-08-03-01-01.sql -W
psql -U postgres -h localhost -d iredadmin -f iredadmin-2023-08-08-03-01-01.sql -W
psql -U postgres -h localhost -d iredapd -f iredapd-2023-08-08-03-01-01.sql -W
psql -U postgres -h localhost -d roundcubemail -f roundcubemail-2023-08-08-03-01-01.sql -W
psql -U postgres -h localhost -d vmail -f vmail-2023-08-08-03-01-01.sql -W
根据提示输入安装时设置的数据库密码即可导入数据
删除重复的postmaster记录 这儿要删除导入的那条 通过以下指令可以找到
cat vmail-2023-08-08-03-01-01.sql |grep postmaster
这是postmaster用户的加密密码
登录postgresSQl删除这条记录
# 根据提示输入密码登录
psql -U postgres -h localhost -W
# 切换到vmail数据库
\c vmail
# 删除目标记录
DELETE FROM mailbox WHERE password = '{SSHA512}zHDQTwj ... ... 上面查询到的值 JpmnHhlyo=';
进入解压后的文件找到email_backup/vmail目录 将里面的目录文件移动到/var/vmail/vmail1目录下替换同名文件即可
mv /var/vmail/vmail1/zhong.com /var/vmail/vmail1/start_zhong.com
mv /root/email_backup/root/email_backup/vmail/zhong.com/ /var/vmail/vmail1/
完成核心数据的恢复 其它配置如DKIM keys/SOGo/OpenLDAP backend的备份和恢复可按需求自行操作
为确保配置生效 可重启服务验证
FAQ(常见问题)
无法通过域名和公网IP访问
使用其它客户端可以访问 一般发生在管理员添加域名之后 原因可能是fail2ban误认为此操作攻击行为 一段时间后恢复正常访问
可关闭fail2ban服务即可解决问题
SMTP 错误:消息长度超过服务器能接受的长度 (100 MB)
方法:修改 postfix 中邮件大小的设置
Undelivered Mail Returned to Sender
This is the mail system at host mx.example.com.
I’m sorry to have to inform you that your message could not
be delivered to one or more recipients. It’s attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
1175757741@qq.com
>: message size 134353621 exceeds size limit 73400320 of
server mx3.qq.com[183.47.111.94] … …
方法:这是超出了对方邮件服务器可接收邮件大小的限制 如QQ邮箱限制附件大概为
50MB 可使用链接方式发送
无法发送有附件的邮件
如qq邮箱无法收到 本地邮箱提示邮件隔离了 不要发送敏感附件如exe文件 bat文件等
此网站无法提供安全连接
协议不受支持
客户端和服务器不支持一般 SSL 协议版本或加密套件。
开启所有需要的端口即可如443端口
Undelivered Mail Returned to Sender
554 Reject by behaviour spam at Rcpt State(Connection IP
address:116.232.54.23)ANTISPAM_BAT[01201311R156a, ay29a033002195087]: spf
check failedCONTINUE (in reply to RCPT TO command)
将上面提示的ip地址 116.232.54.23 一同加入到SPF之中如
@ |
TXT |
默认 |
v=spf1 mx ip4:222.66.141.90 ip4:116.232.54.23 -all |
10 分钟 |
正常 |
修改暂停删除备注 |
能发不能收
查看25端口是否开启
监听到一直在发邮件
查看发送队列 可能是某个账号被黑了
postqueue -p
Error: Error while checking new version of iRedAdmin: UniqueViolation(‘错误: 重复键违反唯一约束”updatelog_pkey”\nDETAIL: 键值”(date)=(2023-07-21)” 已经存在\n’)
?
550 5.7.606-649 访问被拒绝
host apc.olc.protection.outlook.com[104.47.18.97] said:
550 5.7.1 Service unavailable, Client host [xxx.xxx.xxx.xxx] blocked using
Spamhaus. To request removal from this list see
https://www.spamhaus.org/query/ip/
xxx.xxx.xxx.xxx
https://www.spamhaus.org/query/ip/
(AS3130).
[AM6EUR05FT045.eop-eur05.prod.protection.outlook.com
2023-08-07T10:11:56.101Z 08DB96BEFD7FD092] (in reply to MAIL FROM command)
原因:某些邮箱系统如Outlook把一些自建的邮箱服务默认列为不信任 所以邮件发布出去
方案:通过 https://www.spamhaus.org/query/ip/xxx.xxx.xxx.xxx 移除不被信任的域名/ip即可
术语
FQDN
(fully qualified domain name)
Postfix
SMTP服务器
Roundcube
Webmail
iRedAdmin
web邮件账号管理
Awstats
分析日志文件生成图表
Amavisd
邮件安全防护
Dovecot
POP3/IMAP/Managesieve
SPF
Sender Policy Framework
SPF是一种打击垃圾邮件和网络钓鱼诈骗的方法,它使用DNS SPF记录来定义允许哪些主机为某个域发送电子邮件。
DKIM
DKIM允许组织以一种可由收件人验证的方式对消息负责。组织可以是消息的直接处理程序,例如作者的、原始发送站点的或传输路径上的中介。但是,它也可以是间接处理程序,例如为直接处理程序提供帮助的独立服务。DKIM通过使用公钥加密和使用域名服务作为其密钥服务器技术,为电子邮件定义了一个域级数字签名认证框架(RFC4871)。
DMARC
DMARC是一种方法,可以使电子邮件发送者和接收者更容易确定给定的消息是否合法地来自发送者,如果不是,该怎么做。这使得识别垃圾邮件和网络钓鱼邮件更容易,并使它们远离人们的收件箱。
DMARC是一个被提议的标准,它允许电子邮件发送者和接收者合作共享他们发送给对方的电子邮件的信息。此信息有助于发件人改进邮件身份验证基础结构,以便对其所有邮件进行身份验证。
欢迎点赞、收藏加关注!