Yikes, this is my bad! I AM using the LMTP service for delivery. What I meant was that I do not necessarily need to track the logins to the LMTP service. I suppose it wouldn’t hurt to track them though. Any idea why it would be throwing this error? Which key is it expecting to be mapped? Am I missing a configuration specifically for this? Should the last login for LMTP use the same dict as the IMAP configuration?

Here’s my IMAP configuration:

protocol imap {

 mail_plugins = $mail_plugins imap_sieve imap_quota last_login

}


Here’s my LMTP configuration:

protocol lmtp {

  mail_plugins = $mail_plugins sieve

}


And then here’s my main mail_plugins configuration:

mail_plugins = $mail_plugins quota mailbox_alias last_login

Finally, here’s my dict for the last_login:

plugin {

  last_login_dict = proxy::sql

  last_login_key = last-login/%{service}/%{user}/%{remote_ip}

  last_login_precision = ms

}

dict {

  sql = mysql:/etc/dovecot/inc.d/inc.lastlogin.sql.conf

}



All the documentation I have seen everywhere shows that to enable a plugin, you must add it to the main mail_plugins as well as in each protocol you want the plugin enabled but it appears that the $mail_plugins is a variable and adding them there anyways. Is this correct? If so, why does most of the documentation I am reading on a daily basis show to add plugins to the main mail_plugins as well as the protocol?

Any further help is definitely appreciated so I can get this figured out.

Thank you!


------ Original Message ------
From "John Fawcett via dovecot" <dovecot@dovecot.org>
To dovecot@dovecot.org
Date 7/17/2024 10:23:24 AM
Subject Re: Invalid/Unmapped Key with Last Login Plugin


On 17/07/2024 16:03, dovecot--- via dovecot wrote:
Hello all! I have the last login plugin working with the IMAP service however 
with LMTP, it errors.
I do not necessarily need / want the LMTP service and did not explicitly enable 
it but it is throwing an error in my logs.

Jul 17 10:22:14 lmtp(184051):Error: last_login_dict: Failed to write value: 
dict-server returned failure: sql dict set: Invalid/unmapped 
key:shared/last-login/lmtp/usern...@domain.com/ (reply took 0.234 secs (0.001 
in dict wait, 0.033 in other ioloops, 0.030 in locks, as ync-id reply 0.000 
secs ago, started on dict-server 0.220 secs ago, took 0.000 secs))

It would be nice to get rid of this error one or another: either disable last 
login for LMTP or get it working.

Current Configuration from doveconf -n

...

protocols = imap lmtp

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0666
    user = postfix
  }
}


But LMTP is being explicitly enabled in your config. Remove it from the 
protocols= line. And optionally remove the service {...} block for it. However 
just taking it out of protocols should be good enough.

Hi Adam

My recommendation, before disabling lmtp, would be to investigate and maybe revise this 
point "I do not necessarily need / want the LMTP service and did not explicitly 
enable it". That error is being generated by a login to lmtp. So what is logging in 
despite you not needing lmtp?

If for example you are using lmtp to deliver email from postfix to dovecot, 
disabling lmtp will stop the flow of new email.

John

_______________________________________________
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org
_______________________________________________
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org

Reply via email to