Назад | Перейти на главную страницу

Безопасно ли перемещать файлы сообщений IMAP при использовании dovecot?

Я использую postfix + dovecot, и все сообщения IMAP находятся в /var/vmail/DOMAIN/USER. Я хотел бы создать скрипт cron, который будет искать сообщения для всех пользователей в папке с названием «Ложные срабатывания», sa-learn их как ветчину, а затем переместите их во входящие.

Вопрос в том, безопасно ли просто mv один из этих файлов сообщений? Или это должно быть сделано с помощью каких-то «официальных» средств, чтобы сервер IMAP знал о перемещении?

Dovecot обнаруживает изменения в почтовом ящике и автоматически перестраивает индексы. Однако вместо mv вы можете использовать dovecot's 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' -> возвращает user / 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 -> перемещает сообщение во входящие