> On 01/06/2023 10:24 EEST Eirik Rye <[email protected]> wrote:
> 
>  
> Hello,
> 
> In my setup, I am running dovecot with the following last_login config:
> 
> plugin {
>    last_login_dict = file:~/.last_login
>    last_login_key = %s
> }
> 
> I would like to distinguish between logins through webmail (Roundcube) 
> and logins through regular IMAP clients. Roundcube sends 
> "x-forward-service=webmail" in ID, and I have working logging for this 
> by putting the following in login_log_format_elements:
> 
>     service=%{if;%{passdb:forward_service};eq;webmail;webmail;%s}
> 
> (Is there may be a more elegant way to do this conditional?)
> 
> This will print `service=webmail` for webmail logins, and `service=imap` 
> for regular IMAP client logins.
> 
> However, the same conditional does not work in last_login_key:
> 
>    last_login_key = %{if;%{passdb:forward_service};eq;webmail;webmail;%s}
> 
> Using this, the login fails and the error log outputs the following error:
> 
>    Error: Failed to expand plugin setting last_login_key = 
> '%{if;%{passdb:forward_service};eq;webmail;webmail;%s}': Unknown 
> variable '%passdb'
> 
> How can I tell which variables are available to use in this plugin? Are 
> the forwarded variables not available? If not, any other suggestions on 
> how to differentiate these logins in last_login? Looking at the 
> remote_ip is not feasible for my setup.
> 
> Best regards,
> Eirik


You can't use passdb variables in mail session.

userdb_some_service=%{passdb:forward_service} in your passdb.

and then you can use %{some_service} in your last_login_key.

please note that %{service} itself is a reserved key.

Aki
_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to