Last Login Plugin

Requires v2.2.14+. This plugin can be used to easily update user’s last-login timestamp in the configured dictionary. 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

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
  }
}