Re: last login plugins
You need to put it in the sql query. SELECT ..., 'last-login/%u/%d/%r/%l/%a' AS last_login_key Aki On February 28, 2021 8:12:39 AM UTC, Henry wrote: > current config as below: >userdb { driver = prefetch}userdb { args = >/etc/dovecot/dovecot-sql.conf.ext driver = sql}plugin { quota = >maildir:User quota > last_login_dict = proxy::lastlogin > last_login_key = last-login/%u/%d/%r/%l/%a quota_status_success >= DUNNO > quota_status_nouser = DUNNO quota_status_overquota = "552 5.2.2 >Mailbox is full"} >### >If I changed as below no help,still no pass the Variable to >last_loginuserdb { driver = prefetch}userdb { args = >/etc/dovecot/dovecot-sql.conf.ext driver = sql}userdb { driver = >static args = last_login_key=last-login/%u/%d/%r/%l/%a} >###If I changed as below will trouble ,cannot restart dovecotuserdb { >driver = prefetch}userdb { args = >/etc/dovecot/dovecot-sql.conf.ext last_login_key=last-login/%u/%d/%r/%l/%a >driver = sql} > > > > > >Aki Tuomi () 在 2021年2月28日星期日 下午03:56:09 >[GMT+8] 寫道: > > It goes into the arguments section... > >Not having your config, I have to guess, but e.g. > >userdb { > driver = static > args = last_login_key=last-login/%u/%d/%r/%l/%a >} > >And similarly with other drivers, depending what you use. > >Aki > >> On 28/02/2021 09:53 Henry wrote: >> >> >> >> Dear Aka, >> >> If in userdb, set >> >> last_login_key=last-login/%u/%d/%r/%l/%a >> >> then cannot restart dovecot the error below : >> >> master: Error: Error reading configuration: Error in configuration >file /etc/dovecot/dovecot.conf line 45: Unknown setting: userdb { >last_login_key >> >> # >> If in userdb, set >> default_fields = last_login_key = last-login/%u/%d/%r/%l/%a >> Error: >> auth: Fatal: Invalid userdb template last_login_key = >last-login/%u/%d/%r/%l/%a - key must not be empty >> >> >> what is my wrongs about? thanks >> >> >> Aki Tuomi () 在 2021年2月28日星期日 下午02:56:51 >[GMT+8] 寫道: >> >> >> In your userdb, set >> >> last_login_key=last-login/%u/%d/%r/%l/%a >> >> Then it will expand into what you want, and will be imported into >user's environment. >> >> Aki >> >> >> > On 28/02/2021 05:57 Henry wrote: >> > >> > >> > like capture local_port, I using %a will got below error >> > >> > Error: Failed to expand plugin setting last_login_key = >'last-login/%u/%d/%r/%l/%a': Unknown variable '%a' >> > >> > >> > If I using any of $local_port ,'$local_port', "$local_port", >`$local_port` >> > >> > I got the database update as $local_port ,'$local_port', >"$local_port", `$local_port` at the field column record. >> > >> > >> > >> > Henry () 在 2021年2月27日星期六 下午10:57:27 [GMT+8] >寫道: >> > >> > >> > I already try using other variables , I found it only support "Mail >service user variables", no support "Login variables" and >"Authentication variables" >> > >> > below the error when I try to using "Login variables" and >"Authentication variables" >> > >> > Error: Failed to expand plugin setting last_login_key = >'last-login/%u/%d/%r/%l/%k': Unknown variable '%k' >> > Error: Failed to expand plugin setting last_login_key = >'last-login/%u/%d/%r/%l/%b': Unknown variable '%b' >> > Error: Failed to expand plugin setting last_login_key = >'last-login/%u/%d/%r/%l/%m': Unknown variable '%m' >> > >> > I using centos 8 and dovecot-2.3.13-2.x86_64, >> > >> > >> > thanks >> > >> > Aki Tuomi () 在 2021年2月27日星期六 下午07:32:38 >[GMT+8] 寫道: >> > >> > >> > last_login supports some of the variables. >> > >> > >> > Mail service and mail user variables are supported. >> > >> > You can try export the auth variables as userdb variables and use >$variablename. >> > >> > Aki >> > >> > >> > On 27 February 2021 7.29.10 EET, Henry wrote: >> > > >> > >Anyone know then last_login plugins do support standard auth >variables >> > >in var-expand?like %k %a variables. >> > >I need logging other fields such as port 143 or 993, and tls 1.1 >or tls >> > >1.3, client hostname, >> > >any patch for this? thanks >> > > >> > >>https://doc.dovecot.org/configuration_manual/config_file/config_variables/ >> > > Henry () 在 2021年2月19日星期五 下午12:15:10 [GMT+8] >寫道: >> > > >> > >but I need logging other fields such as port 143 or 993, and tls >1.1 or >> > >tls 1.3, client hostname, what should I do it ? >> > >>https://doc.dovecot.org/configuration_manual/config_file/config_variables/ >> > > >> > >Aki Tuomi () 在 2021年2月18日星期四 >下午03:04:10 >> > >[GMT+8] 寫道: >> > > >> > > >> > >> On 18/02/2021 08:57 Henry wrote: >> > >> >> > >> >> > >> >> > >> >> > >> Anyone kwon the last-login plugins can using Authentication >variables >> > >such as %m mechanism, %a local_port . >> > >> we want to record this in DB, thanks >> > > >> > >You can use this syntax to add further fields for last_login >plugin. >> > > >> > > map { >> > > pattern = shared/last-login/$user/$domain >> > > table = last_login >> > > value_field = last_login >> > > value_type = uint >> > > >> > > fields { >> > > username = $user >> > > doma
Re: last login plugins
Dear Aka Still no luck, same errorError: Failed to expand plugin setting last_login_key = 'last-login/%u/%d/%r/%l/%a': Unknown variable '%a' If I remark #last_login_key = last-login/%u/%d/%r/%l/%a at plugin , error as belowError: last_login_dict: Failed to write value: dict-server returned failure: sql dict set: Invalid/unmapped key: shared/last-login/ #dovecot.confuserdb { driver = prefetch}userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql}plugin { quota = maildir:User quota last_login_dict = proxy::lastlogin last_login_key = last-login/%u/%d/%r/%l/%a quota_status_success = DUNNO quota_status_nouser = DUNNO quota_status_overquota = "552 5.2.2 Mailbox is full"}dict { lastlogin = mysql:/etc/dovecot/dovecot-last-login.conf } # dovecot-sql.conf.extpassword_query = SELECT CONCAT(pw_name, '@', pw_domain) AS user,pw_passwd AS password, concat('*:backend=', pw_shell) as \ userdb_quota_rule, 89 AS userdb_uid, 89 AS userdb_gid, pw_dir AS userdb_home ,'last-login/%u/%d/%r/%l/%a' AS last_login_key FROM vpopmail LEFT JOIN limits ON vpopmail.pw_domain = \limits.domain WHERE pw_name = '%n' AND pw_domain='%d' AND (( '%s' = 'smtp' AND (pw_gid & 2048)<>2048 AND COALESCE(disable_smtp,0)!=1) OR \('%s' = 'pop3' AND (pw_gid & 2)<>2 AND COALESCE(disable_pop,0) != 1 ) OR ('%s' = 'imap' AND ('%r'='127.0.0.1') AND \(pw_gid & 4)<>4 AND COALESCE(disable_webmail,0)!=1) OR ('%s' = 'imap' AND ('%r'!='127.0.0.1') AND (pw_gid & 8)<>8 AND COALESCE(disable_imap,0)!=1)); user_query = \ SELECT pw_dir AS home, \ 89 AS uid, \ 89 AS gid, \ CONCAT('*:bytes=', REPLACE(SUBSTRING_INDEX(pw_shell, 'S', 1), 'NOQUOTA', '0')) AS quota_rule, \ 'last-login/%u/%d/%r/%l/%a' AS last_login_key \ FROM vpopmail \ WHERE pw_name = '%n' AND pw_domain = '%d' \ AND ('%a'!='995' or !(pw_gid & 2)) \ AND ('%r'!='[WEBMAIL-IP]' or !(pw_gid & 4)) \ AND ('%r'='[WEBMAIL-IP]' or '%a'!='993' or !(pw_gid & 8)) Aki Tuomi () 在 2021年2月28日星期日 下午04:55:04 [GMT+8] 寫道: You need to put it in the sql query. SELECT ..., 'last-login/%u/%d/%r/%l/%a' AS last_login_key Aki On February 28, 2021 8:12:39 AM UTC, Henry wrote: > current config as below: >userdb { driver = prefetch}userdb { args = >/etc/dovecot/dovecot-sql.conf.ext driver = sql}plugin { quota = >maildir:User quota > last_login_dict = proxy::lastlogin > last_login_key = last-login/%u/%d/%r/%l/%a quota_status_success >= DUNNO > quota_status_nouser = DUNNO quota_status_overquota = "552 5.2.2 >Mailbox is full"} >### >If I changed as below no help,still no pass the Variable to >last_loginuserdb { driver = prefetch}userdb { args = >/etc/dovecot/dovecot-sql.conf.ext driver = sql}userdb { driver = >static args = last_login_key=last-login/%u/%d/%r/%l/%a} >###If I changed as below will trouble ,cannot restart dovecotuserdb { >driver = prefetch}userdb { args = >/etc/dovecot/dovecot-sql.conf.ext last_login_key=last-login/%u/%d/%r/%l/%a >driver = sql} > > > > > >Aki Tuomi () 在 2021年2月28日星期日 下午03:56:09 >[GMT+8] 寫道: > > It goes into the arguments section... > >Not having your config, I have to guess, but e.g. > >userdb { > driver = static > args = last_login_key=last-login/%u/%d/%r/%l/%a >} > >And similarly with other drivers, depending what you use. > >Aki > >> On 28/02/2021 09:53 Henry wrote: >> >> >> >> Dear Aka, >> >> If in userdb, set >> >> last_login_key=last-login/%u/%d/%r/%l/%a >> >> then cannot restart dovecot the error below : >> >> master: Error: Error reading configuration: Error in configuration >file /etc/dovecot/dovecot.conf line 45: Unknown setting: userdb { >last_login_key >> >> # >> If in userdb, set >> default_fields = last_login_key = last-login/%u/%d/%r/%l/%a >> Error: >> auth: Fatal: Invalid userdb template last_login_key = >last-login/%u/%d/%r/%l/%a - key must not be empty >> >> >> what is my wrongs about? thanks >> >> >> Aki Tuomi () 在 2021年2月28日星期日 下午02:56:51 >[GMT+8] 寫道: >> >> >> In your userdb, set >> >> last_login_key=last-login/%u/%d/%r/%l/%a >> >> Then it will expand into what you want, and will be imported into >user's environment. >> >> Aki >> >> >> > On 28/02/2021 05:57 Henry wrote: >> > >> > >> > like capture local_port, I using %a will got below error >> > >> > Error: Failed to expand plugin setting last_login_key = >'last-login/%u/%d/%r/%l/%a': Unknown variable '%a' >> > >> > >> > If I using any of $local_port ,'$local_port', "$local_port", >`$local_port` >> > >> > I got the database update as $local_port ,'$local_port', >"$local_port", `$local_port` at the field column record. >> > >> > >> > >> > Henry () 在 2021年2月27日星期六 下午10:57:27 [GMT+8] >寫道: >> > >> > >> > I already try using other variables , I found it only support "Mail >service user variables", no support "Login variables" and >"Authentication variables" >> > >> > below the error when I try to using "Login variables" and >"Authentication variables" >> > >> > Error: Failed to expand plugin setting las
Re: last login plugins
current config as below: userdb { driver = prefetch}userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql}plugin { quota = maildir:User quota last_login_dict = proxy::lastlogin last_login_key = last-login/%u/%d/%r/%l/%a quota_status_success = DUNNO quota_status_nouser = DUNNO quota_status_overquota = "552 5.2.2 Mailbox is full"} ### If I changed as below no help,still no pass the Variable to last_loginuserdb { driver = prefetch}userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql}userdb { driver = static args = last_login_key=last-login/%u/%d/%r/%l/%a} ###If I changed as below will trouble ,cannot restart dovecotuserdb { driver = prefetch}userdb { args = /etc/dovecot/dovecot-sql.conf.ext last_login_key=last-login/%u/%d/%r/%l/%a driver = sql} Aki Tuomi () 在 2021年2月28日星期日 下午03:56:09 [GMT+8] 寫道: It goes into the arguments section... Not having your config, I have to guess, but e.g. userdb { driver = static args = last_login_key=last-login/%u/%d/%r/%l/%a } And similarly with other drivers, depending what you use. Aki > On 28/02/2021 09:53 Henry wrote: > > > > Dear Aka, > > If in userdb, set > > last_login_key=last-login/%u/%d/%r/%l/%a > > then cannot restart dovecot the error below : > > master: Error: Error reading configuration: Error in configuration file > /etc/dovecot/dovecot.conf line 45: Unknown setting: userdb { last_login_key > > # > If in userdb, set > default_fields = last_login_key = last-login/%u/%d/%r/%l/%a > Error: > auth: Fatal: Invalid userdb template last_login_key = > last-login/%u/%d/%r/%l/%a - key must not be empty > > > what is my wrongs about? thanks > > > Aki Tuomi () 在 2021年2月28日星期日 下午02:56:51 [GMT+8] > 寫道: > > > In your userdb, set > > last_login_key=last-login/%u/%d/%r/%l/%a > > Then it will expand into what you want, and will be imported into user's > environment. > > Aki > > > > On 28/02/2021 05:57 Henry wrote: > > > > > > like capture local_port, I using %a will got below error > > > > Error: Failed to expand plugin setting last_login_key = > > 'last-login/%u/%d/%r/%l/%a': Unknown variable '%a' > > > > > > If I using any of $local_port ,'$local_port', "$local_port", `$local_port` > > > > I got the database update as $local_port ,'$local_port', "$local_port", > > `$local_port` at the field column record. > > > > > > > > Henry () 在 2021年2月27日星期六 下午10:57:27 [GMT+8] 寫道: > > > > > > I already try using other variables , I found it only support "Mail service > > user variables", no support "Login variables" and "Authentication variables" > > > > below the error when I try to using "Login variables" and "Authentication > > variables" > > > > Error: Failed to expand plugin setting last_login_key = > > 'last-login/%u/%d/%r/%l/%k': Unknown variable '%k' > > Error: Failed to expand plugin setting last_login_key = > > 'last-login/%u/%d/%r/%l/%b': Unknown variable '%b' > > Error: Failed to expand plugin setting last_login_key = > > 'last-login/%u/%d/%r/%l/%m': Unknown variable '%m' > > > > I using centos 8 and dovecot-2.3.13-2.x86_64, > > > > > > thanks > > > > Aki Tuomi () 在 2021年2月27日星期六 下午07:32:38 [GMT+8] > > 寫道: > > > > > > last_login supports some of the variables. > > > > > > Mail service and mail user variables are supported. > > > > You can try export the auth variables as userdb variables and use > > $variablename. > > > > Aki > > > > > > On 27 February 2021 7.29.10 EET, Henry wrote: > > > > > >Anyone know then last_login plugins do support standard auth variables > > >in var-expand?like %k %a variables. > > >I need logging other fields such as port 143 or 993, and tls 1.1 or tls > > >1.3, client hostname, > > >any patch for this? thanks > > > > > >https://doc.dovecot.org/configuration_manual/config_file/config_variables/ > > > Henry () 在 2021年2月19日星期五 下午12:15:10 [GMT+8] 寫道: > > > > > >but I need logging other fields such as port 143 or 993, and tls 1.1 or > > >tls 1.3, client hostname, what should I do it ? > > >https://doc.dovecot.org/configuration_manual/config_file/config_variables/ > > > > > >Aki Tuomi () 在 2021年2月18日星期四 下午03:04:10 > > >[GMT+8] 寫道: > > > > > > > > >> On 18/02/2021 08:57 Henry wrote: > > >> > > >> > > >> > > >> > > >> Anyone kwon the last-login plugins can using Authentication variables > > >such as %m mechanism, %a local_port . > > >> we want to record this in DB, thanks > > > > > >You can use this syntax to add further fields for last_login plugin. > > > > > > map { > > > pattern = shared/last-login/$user/$domain > > > table = last_login > > > value_field = last_login > > > value_type = uint > > > > > > fields { > > > username = $user > > > domain = $domain > > > rip = $rip > > > } > > >} > > > > > >Aki > > > > > > > > > -- > > Sent from my Android device with K-9 Mail. Please excuse my brevity. > >