我正在运行postfix + dovecot,所有IMAP消息都在/var/vmail/DOMAIN/USER
。 我想制作一个cron脚本,它将查找名为“False Positives”的文件夹中的所有用户的消息,然后将它们作为火腿sa-learn
,然后将它们移动到收件箱中。
这里的问题是,只是在这些消息文件之一是安全的吗? 还是必须通过一些“官方”手段来完成,以便IMAP服务器意识到这一举措?
Dovecot检测邮箱更改并自动重build索引。 但是,您可以使用dovecot的doveadm命令而不是“mv”,并保存不必要的索引重build。
像这样的东西应该工作:
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'
– >返回“False Positives”文件夹中的所有邮件的用户/ guid / uid doveadm fetch -u $user text mailbox-guid $guid uid $uid | sa-learn --ham
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
– >将消息移至INBOX