cyrus-imapd – cyrus.conf почему команда ipuge не очищает устаревшие сообщения

Вопрос или проблема

У меня есть установка cyrus-imap-3, которая, кажется, неправильно настроена для удаления устаревших сообщений из почтовых ящиков пользователей. Но я не могу понять, что не так. Если кто-то сможет указать на мою ошибку, я буду признателен.

Записи в cyrus.conf включают:

SERVICES {
  # добавляйте или удаляйте службы в зависимости от предпочтений
  imap          cmd="imapd" listen="imap" prefork=0
  imaps         cmd="imapd -s" listen="imaps" prefork=0

  # для доставки требуется как минимум один LMTP
  lmtp          cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
  lmtpunix      cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0

}

EVENTS {
  # это требуется
  checkpoint    cmd="ctl_cyrusdb -c" period=30
. . .
 flushLakDfd cmd="ipurge -X -d 35  -f user/luserl/delivery/forwarding" at=0414
. . .

Но когда я заглядываю в почтовый ящик пользователя, я вижу следующее:

find /var/spool/imap/l/user/luserl/delivery/forwarding -name "*\." -maxdepth 1 -mtime +35 -type f | wc -l
   9219

Ответ или решение

Ваша проблема с командой ipurge в Cyrus IMAP, которая не удаляет устаревшие сообщения, может быть связана с несколькими аспектами конфигурации или работы системы. Давайте рассмотрим возможные причины и решения.

  1. Параметры команды ipurge: Вы используете следующую команду в секции EVENTS вашего файла cyrus.conf:

    flushLakDfd cmd="ipurge -X -d 35 -f user/luserl/delivery/forwarding" at=0414

    Убедитесь, что:

    • Параметр -d 35 действительно соответствует вашему ожиданию (это означает, что сообщения старше 35 дней будут удалены).
    • Флаг -X указывает команде игнорировать проверки, которые могут препятствовать удалению. Интересно, что ipurge по умолчанию не удаляет сообщения, которые находятся в специальных метках, таких как "папка Удаленные" или "архив". Убедитесь, что сообщения, которые вы хотите удалить, не помечены как "не удалять".
  2. Путь к папке: Вы используете путь user/luserl/delivery/forwarding. Убедитесь, что этот путь правильный и действительно соответствует хранилищу сообщений. Попробуйте также проверить путь к сообщениям через команду imapd с помощью проверки в командной строке или другим клиентом IMAP.

  3. Настройки конфигурации: Убедитесь, что все необходимые службы, такие как imapd, lmtpd и другие, корректно работают. Проверьте журналы (логи) Cyrus для любых ошибок или предупреждений, которые могут указывать на проблемы с выполнением команды ipurge.

  4. Регулярность выполнения команды: Убедитесь, что команда flushLakDfd выполняется по расписанию. Проверьте настройки EVENTS и убедитесь, что другие команды успешно выполняются в указанное время. Рассмотрите возможность временного запуска ipurge вручную в терминале для проверки, будет ли команда выполняться без ошибок.

  5. Проверка прав доступа: Проверьте права доступа к директории и файлам для пользователя, под которым работает Cyrus. Убедитесь, что у него есть достаточные права для выполнения операций удаления.

Если после проверки всех вышеуказанных пунктов проблема все еще сохраняется, рекомендую обратиться к документации по Cyrus IMAP или обратиться за поддержкой на специализированные форумы или mailing-листы, где можно получить дополнительную помощь от сообщества.

Оцените материал
Добавить комментарий

Капча загружается...