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
# 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" }
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 } }
dovecot-dict.sqlite
Description: application/sqlite3