[Dovecot] Expire plugin does not work

Christoph Pleger Christoph at plmail.de
Thu Dec 16 21:55:25 EET 2010


Hello,

I followed the instructions on http://wiki2.dovecot.org/Plugins/Expire to 
configure the expire plugin, but when I move a message to the Trash folder, I 
get the following error messages in my logfile:

dovecot: dict: Error: sqlite: exec(INSERT INTO expires 
(expire_stamp,username,mailbox) VALUES ('1292525469','christoph','Trash')) 
failed: unable to open database file (14)

dovecot: dict: Error: sql dict: commit failed:

I have attached a "dovecot -n"-generated dovecot.conf, the configuration file 
for the expire dict service, and my sqlite3 database file. In my filesystem, 
dovecot-dict.sqlite currently has permissions 666.

Regards
  Christoph
-------------- next part --------------
# 2.0.7: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-bpo.5-amd64 x86_64 Debian 5.0.7 
auth_mechanisms = plain login
dict {
  expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
disable_plaintext_auth = no
first_valid_uid = 122
last_valid_uid = 122
mail_gid = vmail
mail_location = mdbox:~/mdbox
mail_plugins = " expire"
mail_uid = vmail
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date
passdb {
  args = scheme=PLAIN-MD5 username_format=%Ln /etc/dovecot/databases/users
  driver = passwd-file
}
plugin {
  antispam_backend = SPOOL2DIR
  antispam_spam = Spam
  antispam_spool2dir_notspam = %h/ham/%%020lu-%%05lu
  antispam_spool2dir_spam = %h/spam/%%020lu-%%05lu
  antispam_trash = Trash
  expire = Spam
  expire2 = Trash
  expire_dict = proxy::expire
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
}
protocols = imap lmtp sieve
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
}
service dict {
  unix_listener dict {
    group = vmail
    mode = 0660
    user = vmail
  }
}
service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service lmtp {
  unix_listener lmtp {
    group = dspam
    mode = 0660
    user = root
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  inet_listener sieve_deprecated {
    port = 2000
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 0
  }
  inet_listener pop3s {
    port = 0
    ssl = yes
  }
}
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
  args = username_format=%Ln /etc/dovecot/databases/users
  driver = passwd-file
}
protocol lmtp {
  mail_plugins = " expire sieve"
}
protocol imap {
  imap_client_workarounds = delay-newmail
  mail_plugins = " expire antispam"
}
-------------- next part --------------
connect = /etc/dovecot/dovecot-dict.sqlite

# CREATE TABLE quota (
#   username varchar(100) not null,
#   bytes bigint not null default 0,
#   messages integer not null default 0,
#   primary key (username)
# );

map {
  pattern = priv/quota/storage
  table = quota
  username_field = username
  value_field = bytes
}
map {
  pattern = priv/quota/messages
  table = quota
  username_field = username
  value_field = messages
}

# CREATE TABLE expires (
#   username varchar(100) not null,
#   mailbox varchar(255) not null,
#   expire_stamp integer not null,
#   primary key (username, mailbox)
# );

map {
  pattern = shared/expire/$user/$mailbox
  table = expires
  value_field = expire_stamp

  fields {
    username = $user
    mailbox = $mailbox
  }
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dovecot-dict.sqlite
Type: application/x-sqlite3
Size: 3072 bytes
Desc: not available
Url : http://dovecot.org/pipermail/dovecot/attachments/20101216/054af17f/attachment.bin 


More information about the dovecot mailing list