[Dovecot] Expire plugin does not delete expired mail

Nicolas Letellier nicolas at nicoelro.net
Wed Feb 11 10:22:04 EET 2009


Hello.

I use expire plugin with dovecot 1.1.10. See my dovecot -n:

# 1.1.10: /usr/local/etc/dovecot.conf
# OS: FreeBSD 6.3-RELEASE-p9 i386  ufs
syslog_facility: local6
protocols: imap imaps managesieve
ssl_cert_file: /etc/ssl/mail/mail.domain.net.cert
ssl_key_file: /etc/ssl/mail/mail.domain.net.key
disable_plaintext_auth: no
login_dir: /var/run/dovecot/login
login_executable(default): /usr/local/libexec/dovecot/imap-login
login_executable(imap): /usr/local/libexec/dovecot/imap-login
login_executable(managesieve): /usr/local/libexec/dovecot/managesieve-login
login_user: dovecot-auth
login_greeting: Domain mail server
login_processes_count: 2
verbose_proctitle: yes
first_valid_uid: 143
last_valid_uid: 143
first_valid_gid: 143
last_valid_gid: 143
mail_access_groups: mail
mail_location: maildir:/var/mail/vmail/%u/
mail_debug(default): no
mail_debug(imap): no
mail_debug(managesieve): yes
mail_executable(default): /usr/local/libexec/dovecot/imap
mail_executable(imap): /usr/local/libexec/dovecot/imap
mail_executable(managesieve): /usr/local/libexec/dovecot/managesieve
mail_plugins(default): quota imap_quota mail_log expire
mail_plugins(imap): quota imap_quota mail_log expire
mail_plugins(managesieve):
mail_plugin_dir(default): /usr/local/lib/dovecot/imap
mail_plugin_dir(imap): /usr/local/lib/dovecot/imap
mail_plugin_dir(managesieve): /usr/local/lib/dovecot/managesieve
imap_client_workarounds(default): delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
imap_client_workarounds(imap): delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
imap_client_workarounds(managesieve):
sieve(default):
sieve(imap):
sieve(managesieve): ~/dovecot.sieve
auth default:
  mechanisms: plain login
  master_user_separator: *
  passdb:
    driver: passwd-file
    args: /usr/local/etc/dovecot.masterusers
    master: yes
  passdb:
    driver: sql
    args: /usr/local/etc/dovecot/dovecot-sql.conf
  userdb:
    driver: sql
    args: /usr/local/etc/dovecot/dovecot-sql.conf
  socket:
    type: listen
    client:
      path: /var/spool/postfix/private/auth
      mode: 432
      user: postfix
    master:
      path: /var/run/dovecot/auth-master
      mode: 432
      user: dovecot
      group: mail
plugin:
  quota: maildir
  quota_rule: *:storage=1000M
  quota_rule2: Trash:storage=50M
  quota_warning: storage=80%% /usr/home/scripts/mail_quota-warning.sh 80
  quota_warning2: storage=90%% /usr/home/scripts/mail_quota-warning.sh 85
  quota_warning3: storage=95%% /usr/home/scripts/mail_quota-warning.sh 90
  quota_warning4: storage=95%% /usr/home/scripts/mail_quota-warning.sh 95
  sieve: /var/mail/vmail/%u/dovecot.sieve
  expire: Trash 7 Pubs 15 Junk 1
  expire_dict: proxy::expire
dict:
  expire: mysql:/usr/local/etc/dovecot/dovecot-dict-expire.conf

The expire plugin works with mysql database. The mysql table is used, and expire_stamp are written on it:

user1 at domain.net/Trash  	1234701558
user1 at domain.net/Junk 	1234386055
user2 at domain.net/Trash 	1234874172
user2 at domain.net/Junk 	1234400921
user1 at domain.net/Pubs 	1235576243

I launch /usr/local/sbin/dovecot --exec-mail ext /usr/local/libexec/dovecot/expire-tool every 4 hours. For 3 days, no mails were deleted. However, I have date_stamp in mysql table.

I dropped ALL my mails in Junk/Trash folder ; and delete all dovecot.index* in these folders. After, I restarted dovecot with expire plugin, and when a first mail arrived in one of these folder, a line is created in mysql table.

But nothing is deleted in my Trash/Pubs/Junk folder. I'm waiting for 3 days. (first mail arrived in these folder on 2009/02/08).

Any ideas? Have I to use cronjob/find to delete the expired mail?

Regards,

-- 
 -Nicolas.


More information about the dovecot mailing list