On Mon, 11 Feb 2008, Hugo Monteiro wrote:
Osvaldo Alvarez Pozo wrote:
Hi I wonder how can I know if a mailbox is not beeing consulted. I mean I have severals mailboxs but I know some account are not used. I like to know how to determine wich mail accounts are not beeing used. Is there any way in dovecot to know the las time a user loged in to dovecot?
Thanks
I'm using dovecot's ability to use "pre execution" scripts.
Basically i have in my imap protocol definition in dovecot.conf an alternate mail_executable
protocol imap { ... mail_executable = /usr/local/bin/imap-wrapper.sh ... }
And that executable has the following:
---- snip ---- #!/bin/sh
# Filesystem based timestamp in user's home directory and protocol used echo imap > /var/spool/lastlogin/$UID
# Finally execute the imap/pop3 binary. If you use both, you'll need two scripts. exec /usr/lib/dovecot/imap ---- snip ----
I echo the protocol into the file because i have both pop and imap available to my users and this way i can keep track when was the last time they accessed their mailbox (ls -l /var/spool/lastlogin/username) and which protocol they used in that access (cat /var/spool/lastlogin/username).
There are inumerous possibilities of course.
For a summary of recent-past emails about this, see: http://dovecot.org/list/dovecot/2007-November/027148.html
To make the script in this email work for both POP3 and IMAP:
$ cat /root/dovecot-login.sh
#!/bin/sh
PROTO=basename $0
echo $PROTO > /var/spool/lastlogin/$UID
exec /usr/libexec/dovecot/$PROTO
$ ln -s /root/dovecot-login.sh /root/imap $ ln -s /root/dovecot-login.sh /root/pop3
In dovecot.conf:
protocol imap { ... mail_executable = /root/imap ... }
protocol pop3 { ... mail_executable = /root/pop3 ... }
Best, Ben