On 10/18/2014 10:37 AM, Luigi Rosa wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Gedalya wrote on 18/10/2014 16:10:

I guess you have to use the proxy.

So maybe something like

plugin { last_login_dict = proxy::lastlogin }

dict { lastlogin = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext }

I'll try it later myself, thanks for taking it thus far :-) I've been
meaning to try this out but was rather perplexed.
I made some progress thank to your suggestions.

dovecot-dict-sql.conf.ext content is:

map {
   pattern = /shared/last-login/$user
   table = mailbox
   username_field = username
   value_field = lastlogin
   fields {
     username = $user
   }
}

Note that you must not specify "driver" parameter


Plugin is defined this way:


plugin {
   last_login_dict = proxy::lastlogin
   last_login_key = last-login/%u # default
}

dict {
   lastlogin = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
   mode = 0660
   user = 501
}


But I get two errors.


First is the permission of /var/run/dovecot/dict that is 700 root.root and I
get a permission error. Nothing changes if I put user = root. I have to
manually chmod /var/run/dovecot/dict every time I restart Dovecot otherwise I 
get

Error: net_connect_unix(/var/run/dovecot//dict) failed: Permission denied
(euid=501(mailvirtuale) egid=501(mailvirtuale) missing +r perm:
/var/run/dovecot//dict, dir owned by 0:0 mode=0755)

If I chmod 777 /var/run/dovecot/dict the error disappears but I get this:

dovecot: imap-login: Login: user=<username>, method=PLAIN, rip=127.0.0.1,
lip=127.0.0.1, mpid=497913, secured, session=<6R0mYbMFFwB/AAAB>
dovecot: dict: Error: sql dict set: Invalid/unmapped key:
shared/last-login/username



OK I got it.

The code looks at shared/$last_login_key, so shared/last-login/username, but your map says /shared/last-login/$user, note the leading slash!
That's probably all it is.

Reply via email to