[Dovecot] Anyone successfully using expire plugin?

Rainer Weikusat
Fri, 23 Apr 2010 17:50:49 -0000

Thomas M Goerger <tmg at umn.edu> writes:
> Anyone out there using expire?  At this point, I'm not sure that
it's even
> running.  It was touching the plugin libraries yesterday, but doesn't
> appear to be doing so today.  The plugin directory wasn't explictly
set,
> so I've done so now, but it's still not touching these.  Anyone
have a cf
> file I could take a look at, or any ideas as to what might be happening?

I haven't followed the thread very attentively, but I am using it
(together w/ 1.2.11). At least on Linux (and possibly on Solaris) you
can use the pmap-command to determine if the plugin is actually loaded
(should be loaded by the 'mail processor' processes, 'pop3' or
'imap'). For a pop3-process I just looked at, this looks like this:

19612:   pop3
Address   Kbytes Mode  Offset           Device    Mapping
08048000     672 r-x-- 0000000000000000 008:00006 pop3
080f0000       8 rw--- 00000000000a7000 008:00006 pop3
080f2000     472 rw--- 0000000000000000 000:00000   [ anon ]
b7f37000      32 r--s- 0000000000000000 008:00008 dovecot.index.cache
b7f3f000      32 r--s- 0000000000000000 008:00008 dovecot.index.log
b7f47000       4 rw--- 0000000000000000 000:00000   [ anon ]
b7f48000      60 r-x-- 0000000000000000 008:00006 libpthread-2.3.6.so
b7f57000       4 rw--- 000000000000e000 008:00006 libpthread-2.3.6.so
b7f58000       8 rw--- 0000000000000000 000:00000   [ anon ]
b7f5a000    1172 r-x-- 0000000000000000 008:00006 libc-2.3.6.so
b807f000      28 rw--- 0000000000125000 008:00006 libc-2.3.6.so
b8086000      16 rw--- 0000000000000000 000:00000   [ anon ]
b808a000      28 r-x-- 0000000000000000 008:00006 librt-2.3.6.so
b8091000       4 rw--- 0000000000006000 008:00006 librt-2.3.6.so
b8092000       8 r-x-- 0000000000000000 008:00006 libdl-2.3.6.so
b8094000       4 rw--- 0000000000001000 008:00006 libdl-2.3.6.so
b8097000      12 r-x-- 0000000000000000 008:00006 lib20_expire_plugin.so
b809a000       4 rw--- 0000000000002000 008:00006 lib20_expire_plugin.so
b809b000      12 rw--- 0000000000000000 000:00000   [ anon ]
b809e000      84 r-x-- 0000000000000000 008:00006 ld-2.3.6.so
b80b3000       4 rw--- 0000000000014000 008:00006 ld-2.3.6.so
bfbf1000      84 rw--- 0000000000000000 000:00000   [ stack ]
ffffe000       4 r-x-- 0000000000000000 000:00000   [ anon ]
mapped: 2756K    writeable/private: 652K    shared: 64K

I am using a PostgreSQL table created according to the instructions in
the Wiki and my configuration is (excerpt):

------------- dovecot.conf ---------------
protocol pop3 {
        pop3_uidl_format = %08Xu%08Xv
        pop3_save_uidl = yes
        mail_max_userip_connections = 3
        mail_plugins = expire
}

[...]

dict {
        expire = multi-pgsql:/etc/dovecot-pmg-cfg/dovecot-expire.conf
}

plugin {
        expire = * 7
        expire_dict = proxy::expire
}
------------------------------------------

--------------- dovecot-expire.conf ------
connect = dbname=a user=b password=c

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

        fields {
                username = $user
                mailbox = $mailbox
        }
}
------------------------------------------

which is just an adjusted copy of the example configuration
(multi-pgsql is a custom PostgreSQL driver used by this application).