1 最后由 xjsxjs197 (2019-06-28 15:05:07) 编辑

主题: 通过网页添加的黑白名单第二天就不见了

版主好:
我通过iRedAdmin-Pro网页版追加了黑白名单,当天测试是生效的,黑名单可以阻止发信。
但是第二天再打开网页版的设置时,前一天的黑白名单不见了,还需要其他的什么操作吗?

iRedMail v0.9.4
iRedAdmin-Pro v2.3.1 (PostgreSQL)

Post's attachments

blackWhiteList.png 22.57 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

回复: 通过网页添加的黑白名单第二天就不见了

通过查看管理员日志,发现每天会定时执行:cleanup_amavisd_db。
原因应该就在这里,先添加黑白名单,再手动执行cleanup_amavisd_db,黑白名单就不见了。
手动修改cleanup_amavisd_db.py中下面的代码:

#
# Delete unreferenced records from table `mailaddr`.
#
logger.info('Delete unreferenced records from table `mailaddr`.')

# Get all `mailaddr.id`
mailaddr_ids = set()
qr = conn.select('mailaddr', what='id')
for i in qr:
    mailaddr_ids.add(i.id)

# Get all `wblist.sid` and `outbound_wblist.rid` (both refer to `mailaddr.id`)
wblist_ids = set()

qr = conn.select('wblist', what='sid')
for i in qr:
    wblist_ids.add(i.sid)

try:
    qr = conn.select('outbound_wblist', what='rid')
    for i in qr:
        wblist_ids.add(i.sid)
except:
    # No outbound_wblist table
    pass

invalid_mailaddr_ids = [id for id in mailaddr_ids if id not in wblist_ids]
#把下面注释掉
#removing_from_one_table(sql_table='mailaddr',
#                        index_column='id',
#                        removed_values=invalid_mailaddr_ids)
#把上面注释掉

问题虽然算是解决,
但是上面的removing_from_one_table为什么会把黑白名单都删除了,以及注释掉这段代码会产生什么影响,就不太清楚了。
请教高手或前辈指点。

回复: 通过网页添加的黑白名单第二天就不见了

应该算是 iRedAdmin-Pro 这个脚本的 bug,我会在下一版本里修复掉。感谢反馈。

回复: 通过网页添加的黑白名单第二天就不见了

在最新版本的 iRedAdmin-Pro 里无法重现这个错误。是否考虑升级 iRedMail (到最新的 0.9.9)和 iRedAdmin-Pro?

回复: 通过网页添加的黑白名单第二天就不见了

ZhangHuangbin 写道:

在最新版本的 iRedAdmin-Pro 里无法重现这个错误。是否考虑升级 iRedMail (到最新的 0.9.9)和 iRedAdmin-Pro?

非常感谢回复!
这个问题就临时这样处理了,至于升级,先不折腾了(主要是我啥都不懂),等以后重新搭建服务器的时候,直接使用最新版本吧。
再次感谢。