使用 dovecot 时移动 IMAP 消息文件是否安全?

使用 dovecot 时移动 IMAP 消息文件是否安全?

我正在运行 postfix + dovecot,所有 IMAP 消息都在 中/var/vmail/DOMAIN/USER。我想制作一个 cron 脚本,它将在名为“False Positives”的文件夹中查找所有用户的消息,并将sa-learn其视为 ham,然后将其移动到收件箱中。

这里的问题是,只mv保留其中一个邮件文件是否安全?还是必须通过某种“官方”方式才能让 IMAP 服务器知道这一移动?

答案1

Dovecot 会检测邮箱更改并自动重建索引。不过,除了“mv”,您还可以使用 dovecot 的doveadm命令并保存不必要的索引重建。

类似这样的事情应该可以工作:

doveadm search -A mailbox 'False Positives' 2>/dev/null | while read user guid uid; do   doveadm fetch -u $user text mailbox-guid $guid uid $uid | sa-learn --ham ; doveadm move -u $user INBOX mailbox-guid $guid uid $uid ; done
Learned tokens from 1 message(s) (1 message(s) examined)
Learned tokens from 1 message(s) (1 message(s) examined)
Learned tokens from 1 message(s) (1 message(s) examined)

解释:

  • doveadm search -A mailbox 'False Positives'-> 返回“误报”文件夹中所有邮件的用户/guid/uid
  • doveadm fetch -u $user text mailbox-guid $guid uid $uid | sa-learn --ham-> 打印出完整消息(标题和正文)并通过管道传输到 sa-learn
  • doveadm move -u $user INBOX mailbox-guid $guid uid $uid-> 将消息移至收件箱

相关内容