重启了 Apache 服务么?浏览器缓存清空一下。

尝试一下重启 openldap 服务。

这个问题有助于搞清楚 SQL table (amavisd.policy) 里的各个 column 的用法。
在此我想说声抱歉,最近因为到了另外一个国家,这几天还没有时间仔细测试你反馈的问题,可能还要再拖几天甚至几个星期。非常抱歉。

79

(3 篇回复,发表在 iRedMail 技术支持)

已修复。

80

(3 篇回复,发表在 iRedMail 技术支持)

镜像做的有问题,正在修复中。

你的 iRedMail 所使用的 DNS 服务器可能有问题。检查 /etc/resolv.conf 和 /var/spool/postfix/etc/resolv.conf 里指定的 DNS 服务器是否响应迅速,并且正确解析各个域名。

82

(2 篇回复,发表在 iRedMail 技术支持)

其它如 hotmail/yahoo 或其它邮件服务器是否能发到你的 iRedMail 服务器?

重新生成一个证书并替换掉即可。

rain6966 写道:

1).spam 訊息何以會不一樣? 正確是否以iRedAdmin-Pro 的設定為主 ,如何修正.

修改了 iRedAdmin-Pro 的设置后是否重启了 Apache 或 uwsgi 服务?
因为这个 subject 已经保存在 SQL 里,所以你可能要重新更新一下 Global Spam Policy 页面(不做任何修改直接 submit 应该就够了,或者保守一点,先 delete 再重新设置。最好能进入 SQL 数据库检查一下是否 subject 被设置为正确的内容了。

贴一下你的 /usr/local/etc/nginx/sites-enabled/00-default-ssl.conf.

你设计灾备方案/架构的时候避免多台同时访问同一个邮箱即可。

87

(2 篇回复,发表在 iRedMail 技术支持)

这是由于 iRedMail 网站由 http 换成了 https,但是 freebsd 自带的 ftp 命令不支持 https。

请使用 iRedMail-0.9.8-beta1 版本(昨天发布的):
https://www.iredmail.org/download.html

88

(1 篇回复,发表在 iRedMail 技术支持)

可能是你的 IP 被 Fail2ban 给 block 了。运行 "iptables -L -n"看看是否确实被 block。
可以用 "fail2ban-client" 命令来 unblock。

iRedMail-0.9.7 目录里带了 tools/fail2ban_unban_ip.sh 脚本,可以方便地 unban:

bash fail2ban_unban_ip.sh <ip> <ip> <ip>

看一下 postfix 日志文件里有什么相关 log。
FYI: https://docs.iredmail.org/file.locations.html

不能两台或多台 dovecot 同时访问同一个邮箱,否则就会将 index 索引文件给破坏掉。

防火墙?

92

(10 篇回复,发表在 iRedMail 技术支持)

有个小建议:最好是将 PREGREET 相关的两条 (failregex + ignoreregex)单独做一个 jail,并且 maxretry 设置为 1 (或者 2,3,看你自己的需要)。这样可以以最快的速度 ban 掉这些 bad clients。

93

(10 篇回复,发表在 iRedMail 技术支持)

谢谢帮忙测试。下面这个将是最终的 postfix.iredmail.conf:

[Definition]
# *) '554 5.7.1' is 'Helo command rejected: ACCESS DENIED'
#
#   'ACCESS DENIED' is string defined in postfix restriction rule `check_helo_access`.
#   no all rules contains 'ACCESS DENIED', so we use status code insead.
#
# *) 'postscreen[\d+]: PREGREET .* from \[<HOST>\]:\d+: EHLO .*\r\n'
#
#    remote SMTP client speaks before its turn within the time specified with
#    the `postscreen_greet_wait` parameter in Postfix main.cf.

failregex = \[<HOST>\]: SASL (PLAIN|LOGIN) authentication failed
            lost connection after (AUTH|UNKNOWN|EHLO) from (.*)\[<HOST>\]
            reject: RCPT from .*\[<HOST>\]: .*: Relay access denied
            reject: RCPT from .*\[<HOST>\]: .*: Sender address rejected: Domain not found
            reject: RCPT from .*\[<HOST>\]: .*: Helo command rejected: Host not found
            reject: RCPT from .*\[<HOST>\]: .*: Helo command rejected: need fully-qualified hostname
            reject: RCPT from .*\[<HOST>\]: 554 5.7.1
            reject: RCPT from .*\[<HOST>\]:\d+: 550 5.5.1 Protocol error
            warning: Illegal address syntax from (.*)\[<HOST>\] in RCPT command
            postscreen\[\d+\]: PREGREET .* from \[<HOST>\]:\d+:

# while setting up new account, Thunderbird doesn't wait for server connection
# greeting/banner, this causes Thunderbird cannot pass the Postfix pregreet
# test and caught by `failregex` rules listed above (the rule contains
# 'PREGREET' line).
# FYI: https://bugzilla.mozilla.org/show_bug.cgi?id=538809#c41
ignoreregex = postscreen\[\d+\]: PREGREET .* from \[<HOST>\]:\d+: (EHLO|HELO) we-guess.mozilla.org

94

(1 篇回复,发表在 iRedMail 技术支持)

客户端程序请配置使用 SMTP 验证及 587 端口(TLS 加密)来发送邮件。

参考:https://docs.iredmail.org/recalculate.mailbox.quota.html

96

(10 篇回复,发表在 iRedMail 技术支持)

一帖里讨论的内容太多,必须细化并拆分到各自独立的 forum thread 里去,我现在已经被你搞得头大了。。。

我原计划的 postfix.iredmail.conf 是这样的:

[Definition]
# *) '554 5.7.1' is 'Helo command rejected: ACCESS DENIED'
#
#   'ACCESS DENIED' is string defined in postfix restriction rule `check_helo_access`.
#   no all rules contains 'ACCESS DENIED', so we use status code insead.
#
# *) 'postscreen[\d+]: PREGREET .* from \[<HOST>\]:\d+: EHLO .*\r\n'
#
#    remote SMTP client speaks before its turn within the time specified with
#    the `postscreen_greet_wait` parameter in Postfix main.cf.

failregex = \[<HOST>\]: SASL (PLAIN|LOGIN) authentication failed
            lost connection after (AUTH|UNKNOWN|EHLO) from (.*)\[<HOST>\]
            reject: RCPT from .*\[<HOST>\]: .*: Relay access denied
            reject: RCPT from .*\[<HOST>\]: .*: Sender address rejected: Domain not found
            reject: RCPT from .*\[<HOST>\]: .*: Helo command rejected: Host not found
            reject: RCPT from .*\[<HOST>\]: .*: Helo command rejected: need fully-qualified hostname
            reject: RCPT from .*\[<HOST>\]: 554 5.7.1
            reject: RCPT from .*\[<HOST>\]:\d+: 550 5.5.1 Protocol error
            warning: Illegal address syntax from (.*)\[<HOST>\] in RCPT command
            postscreen\[\d+\]: PREGREET .* from \[<HOST>\]:\d+:

# while setting up new account, Thunderbird doesn't wait for server connection
# greeting/banner, this causes Thunderbird cannot pass the Postfix pregreet
# test and caught by `fail2regex` listed above (the rule contains 'PREGREET')
# https://bugzilla.mozilla.org/show_bug.cgi?id=538809#c41
ignoreregex = postscreen\[\d+\]: PREGREET .* from \[<HOST>\]:\d+: (EHLO|HELO) we-guess.mozilla.org

在 failregex 里尽管抓各种 PREGREET 的 log,但在 ignoreregex 里则排除掉 Thunderbird。

注意:我猜测你可能运行 fail2ban-regex 命令做测试是这样的:

fail2ban-regex <log-file> <filter-file>

如果要同时测试 ignoreregex,必须再指定第 3 个参数作为 ignoreregex:

fail2ban-regex <log-file> <filter-file> <ignoreregex-file>

也就是:

fail2ban-regex /var/log/maillog /etc/fail2ban/filter.d/postfix.iredmail.conf /etc/fail2ban/filter.d/postfix.iredmail.conf

可否确认一下你的测试是否正确?如果不正确,可否再重新测试一次?谢谢。

97

(10 篇回复,发表在 iRedMail 技术支持)

ZhangHuangbin 写道:

可能的一个方案是:在 postfix.iredmail.conf 的 "ignoreregex =" 参数里加入 Thunderbird 的 log 作为例外情况。

可否在你的 postfix.iredmail.conf 里加上以下 ignoreregex 来忽略 TB?

ignoreregex = postscreen\[\d+\]: PREGREET .* from \[<HOST>\]:\d+: (EHLO|HELO) we-guess.mozilla.org

98

(10 篇回复,发表在 iRedMail 技术支持)

ZhangHuangbin 写道:

烦请 update 该 bug 提醒 mozilla 团队去解决这个问题。

我在原 bug report 里加了个 comment,希望 mozilla 团队能尽快修复:
https://bugzilla.mozilla.org/show_bug.cgi?id=538809#c41

99

(10 篇回复,发表在 iRedMail 技术支持)

发现 Thunderbird 与此 issue 的相关问题已经在 7 年前就被提出了:
https://bugzilla.mozilla.org/show_bug.cgi?id=538809

引用如下:

3. Thunderbird is NOT waiting for the banner before sending EHLO. My server says 'SMTP protocol synchronization error (next input sent too soon: pipelining was not advertised): rejected "EHLO we-guess.mozilla.org"'

这个问题是造成该 fail2ban 问题的原因。按照 RFC 规定,MUA/MTA 要等待对方返回 greeting/banner 信息后再执行下一个 smtp command,但是 Thunderbird 没有等待。而 Postfix postscreen log 里的 PREGREET (pre greeting)标记就是这个问题的记录。

从上面的链接的最新回复来看,应该是 TB 最新版本仍然有这个问题。烦请 update 该 bug 提醒 mozilla 团队去解决这个问题。
从根源解决总比我们在下游修修补补来得彻底。

100

(10 篇回复,发表在 iRedMail 技术支持)

可否将你修改过的完整 postfix.iredmail.conf 贴一下?

目前我在客户的 iRedMail load-balance cluster 上使用了 bitbucket 版本的 postfix.iredmail.conf,有效 block 了非常大量的来自中国大陆的肉机(以使用 ylmf-pc 作为 EHLO 为主),但确实没有预料到 Thunderbird 被 block 的情况。

可能的一个方案是:在 postfix.iredmail.conf 的 "ignoreregex =" 参数里加入 Thunderbird 的 log 作为例外情况。