summaryrefslogtreecommitdiffstats
path: root/doc/wiki/Plugins.LastLogin.txt
blob: 65ae6a85c252d47525b5537b824deaa37bc23f66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Last Login Plugin
=================

Requires v2.2.14+. This plugin can be used to easily update user's last-login
timestamp in the configured <dictionary> [Dictionary.txt]. Configuration:

---%<-------------------------------------------------------------------------
protocol imap {
  mail_plugins = $mail_plugins last_login
}
protocol pop3 {
  mail_plugins = $mail_plugins last_login
}

plugin {
  last_login_dict = redis:host=127.0.0.1:port=6379
  #last_login_key = last-login/%u # default
}
---%<-------------------------------------------------------------------------

Note that we enable last_login plugin explicitly only for imap & pop3
protocols. If enabled globally, it'll also update the timestamp whenever new
mails are delivered via lda/lmtp or when doveadm is run for the user. This can
also be thought of as a feature, so if you want to update a different timestamp
for user when new mails are delivered, you can do that by enabling the
last_login plugin also for lda/lmtp and changing the last_login_key setting.

Example dict config with schema

---%<-------------------------------------------------------------------------
CREATE TABLE `users` (
  `userid` varchar(255) NOT NULL,

...

  `last_login` int(11) DEFAULT NULL,
  PRIMARY KEY (`userid`)
)
---%<-------------------------------------------------------------------------

---%<-------------------------------------------------------------------------
map {
  pattern = shared/last-login/$user
  table = users
  value_field = last_login
  value_type = uint

  fields {
    userid = $user
  }
}
---%<-------------------------------------------------------------------------

(This file was created from the wiki on 2019-06-19 12:42)