我可以强制 dovecot 忽略 pop3 请求来删除收到的电子邮件吗?

我可以强制 dovecot 忽略 pop3 请求来删除收到的电子邮件吗?

这是我的第一个科幻问题,所以请保持礼貌:

有没有一种简单的方法可以强制 dovecot pop3 服务器在被 MUA 获取后忽略“删除消息”命令?

以下是我面临的问题:

  • 我的老板想强迫每个人都遵守服务器端的“不删除消息”政策,以便存档、审计、备份和恢复
  • 这里的必备条件是 pop3,因此 imap 不适用
  • 邮件用户是虚拟用户(保存在 mysql 数据库中)
  • 没有预算设置单独的邮件归档服务器
  • 不想使用不规范的方式(又名不可变标志、Maildirs 的读/写权限等)

解决这个问题的一种方法是(我猜)为一个单独的 MANAGER 帐户设置一个 postfix 转发规则,但以后在有效的电子邮件恢复方面会出现问题(即明确地为不同的用户传播电子邮件)

帮忙?谢谢!

编辑:将在 dovecot 专用论坛上询问同样的问题,只是想拓宽我的技术范围 :) dovecot 2.0.15

答案1

最短答案

简短回答

获取 dovecot 的源代码,grok 代码编辑并删除 DELE 命令。编译、安装并准备好“升级噩梦”

更长的答案

永远不要忽略和违反 RFC,根据该 RFC,POP3 会话中的 DELE 必须删除假脱机中的消息。告诉老板资助技术解决方案,因为它会减少未来的麻烦和问题

为你的任务提供解决方案,而不是回答问题

更改 MTA 配置并将主机上的每个邮件用户扩展为“双用户”别名系统,即普通[电子邮件保护]会变成类似

user: user-m, user-b

其中,用户 m 和用户 b 是相同的用户 (对于 MTA 和 Dovecot 而言),但有一个区别:用户 m 具有 POP3 访问权限,而用户 b 没有。

你必须有*2个邮箱空间,但易于管理满的每个用户的档案数量

答案2

虽然我知道这是一个老问题,但我正在用最新信息更新它。

文件:

/etc/dovecot/config.d/20-pop3.conf

包含以下部分:

# This option changes POP3 behavior so that it's not possible to actually
# delete mails via POP3, only hide them from future POP3 sessions. The mails
# will still be counted towards user's quota until actually deleted via IMAP.
# Use e.g. "$POP3Deleted" as the value (it will be visible as IMAP keyword).
# Make sure you can legally archive mails before enabling this setting.
#pop3_deleted_flag =

因此,通过类似以下方式启用此功能

pop3_deleted_flag = $$Pop3Deleted

即可达到所需的效果。($是 dovecot 配置中的特殊字符,因此将其双击即可退出)

相关内容