doveadm-flags - Add, remove or replace messages’ flags


doveadm [-Dv] flags [-S socket_path] -A command flags search_query

doveadm [-Dv] flags [-S socket_path] -F file command flags search_query

doveadm [-Dv] flags [-S socket_path] -u user command flags search_query


This command is used to manipulate flags of messages.


Global doveadm(1) options:


Enables verbosity and debug messages.

-o setting=value

Overrides the configuration setting from /etc/dovecot/dovecot.conf and from the userdb with the given value. In order to override multiple settings, the -o option may be specified multiple times.


Enables verbosity, including progress counter.

Command specific options:


If the -A option is present, the command will be performed for all users. Using this option in combination with system users from userdb { driver = passwd } is not recommended, because it contains also users with a lower UID than the one configured with the first_valid_uid setting.

When the SQL userdb module is used make sure that the iterate_query setting in /etc/dovecot/dovecot-sql.conf.ext matches your database layout. When using the LDAP userdb module, make sure that the iterate_attrs and iterate_filter settings in /etc/dovecot/dovecot-ldap.conf.ext match your LDAP schema. Otherwise doveadm(1) will be unable to iterate over all users.

-F file

Execute the command for all the users in the file. This is similar to the -A option, but instead of getting the list of users from the userdb, they are read from the given file. The file contains one username per line.

-S socket_path

The option’s argument is either an absolute path to a local UNIX domain socket, or a hostname and port (hostname:port), in order to connect a remote host via a TCP socket.

This allows an administrator to execute doveadm(1) mail commands through the given socket.

-u user/mask

Run the command only for the given user. It’s also possible to use ‘*’ and ‘?’ wildcards (e.g. -u *



Message flags as described in RFC 3501, section 2.3.2 (Flags Message Attribute): \Answered, \Deleted, \Draft, \Flagged, \Recent and \Seen. And the IMAP keywords $Forwarded, $MDNSent, $SubmitPending and $Submitted or user-defined keywords, e.g. Junk, $NonSpam or $Label1.

One or multiple flags and/or keywords can be specified.


Manipulate the flags of messages matching the given search query. See doveadm-search-query(7) for details.


flags add

doveadm flags add [-u user | -A | -F file] [-S socket_path] flags search_query

This command is used to extend the current set of flags with the given flags.

flags remove

doveadm flags remove [-u user | -A | -F file] [-S socket_path] flags search_query

In order to remove the given flags from the current set of flags, use this command.

flags replace

doveadm flags replace [-u user | -A | -F file] [-S socket_path] flags search_query

This command is used to replace ALL current flags with the given flags.


List and manipulate the message flags of the message with uid 81563

doveadm fetch -u bob 'uid flags' mailbox dovecot uid 81563
uid: 81563
flags: Answered Seen NonJunk

doveadm flags remove -u bob NonJunk mailbox dovecot uid 81563
doveadm flags add -u bob 'Flagged $Forwarded' mailbox dovecot uid 81563


Report bugs, including doveconf -n output, to the Dovecot Mailing List <>. Information about reporting bugs is available at: