DOVEADM-SAVE(1)
π DOVEADM-SAVE β the doveadm-save(1) glow-up
okay so bestie, this is doveadm-save from the Dovecot fam (you know, the manual, part 1 of the doveadm universe) and it's literally just here to yeet emails into someone's mailbox π no drama, no fuss, just vibes.
β¨ NAME β¨
doveadm-save β save an email to a user's mailbox π
π«Ά SYNOPSIS π«Ά
doveadm [GLOBAL OPTIONS] save [-S socket_path] -A [-m mailbox] [-U uid]
[-g guid] [-r received-date] [mail-file]
doveadm [GLOBAL OPTIONS] save [-S socket_path] -F file [-m mailbox] [-U
uid] [-g guid] [-r received-date] [mail-file]
doveadm [GLOBAL OPTIONS] save [-S socket_path] --no-userdb-lookup [-m
mailbox] [-U uid] [-g guid] [-r received-date] [mail-file]
doveadm [GLOBAL OPTIONS] save [-S socket_path] -u user [-m mailbox] [-U
uid] [-g guid] [-r received-date] [mail-file]
four whole shapes of the same slay, pick your fighter π
πΈ DESCRIPTION πΈ
doveadm save is your little bestie for saving messages. scripts love her, debugging loves her, she's the moment. π
β οΈ important tea: Sieve is NOT invoked for saved messages. she does not run your filters, she does not read your rules. BUT β quota is enforced, so don't try anything cute. π
π GLOBAL OPTIONS π
the doveadm(1) classics, shared by everybody:
-Dβ turns on verbosity and debug messages. the yapper setting fr.-Oβ do not read any config file, just use defaults. thedovecot_storage_versionsetting defaults to the latest version, but you can override it with-o.-kβ preserve the entire environment fordoveadm, not just theimport_environmentsetting. full send. π₯-vβ enables verbosity, including the progress counter. number go up β¨-iinstance-name β if you're running multiple Dovecot instances, pick the config file based on this instance name. see theinstance_namesetting for more info.-cconfig-file β read configuration from the given config-file. by default it first reads the config socket, then falls back to/etc/dovecot/dovecot.conf. you can also point this at the config socket of some instance running a compatible version. π-osetting=value β overrides the configuration setting from/etc/dovecot/dovecot.confand from the userdb with the given value. wanna override multiple settings? just stack the-ooption multiple times, no cap. π¦
π OPTIONS π
-Aβ if present, the command gets performed for all users. lowkey a warning though: using this with system users fromuserdb { driver = passwd }is not recommended, because that also contains users with a lower UID than the one configured with thefirst_valid_uidsetting. π
when the SQL userdb module is used, make sure the userdb_sql_iterate_query setting matches your database layout.
when using the LDAP userdb module, make sure the userdb_fields setting and the userdb_ldap_iterate_fields setting match your LDAP schema. otherwise doveadm(1) will be unable to iterate over all users. π
-Ffile β execute the command for all the users in file. similar to the-Aoption, but instead of getting the list of users from the userdb, they're read from the given file. one username per line, bestie. π--no-userdb-lookupβ do not perform a userdb lookup. use theUSERenvironment variable to specify the username instead. π-Ssocket_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 lets an administrator executedoveadm(1)mail commands through the given socket. iconic. π-uuser/mask β run the command only for the given user. you can also use'*'and'?'wildcards (e.g.-u *@example.org). wild. β-mmailbox β store the mail to the specified mailbox instead ofINBOX. π¬-Uuid β save the mail using the given uid, if possible.-gguid β save the mail using the given guid.-rreceived-date β save the mail using the given received-date timestamp. this is in the "human timestamp" format as described bydoveadm-search-query(7). π
π§ ARGUMENTS π§
mail-file
the message data to save. periodt.
- if mail-file is
-, the message is read from stdin (default). π - otherwise, mail-file resolves as a file path. π
π EXAMPLE π
echo "hello, world" | doveadm save -u testuser@testdomain
look at her go π she ATE
π€ REPORTING BUGS π€
found a bug? don't gatekeep it. report bugs, including doveconf -n output, to the Dovecot Mailing List β¨dovecot@dovecot.orgβ©. info about reporting bugs lives at: β¨https://dovecot.org/bugreport.htmlβ©
π SEE ALSO π
and that's the whole page bestie!! π source/version f979264, dated April 2026, still signed DOVEADM-SAVE(1) at the bottom like the main character she is. go save some mail, ily, bye πβ¨π¦
π¦ where this page comes from
- alpine 3.23: dovecot-doc 2.4.5-r0 Β· MIT AND LGPL-2.1-or-later
- alpine 3.24: dovecot-doc 2.4.5-r0 Β· MIT AND LGPL-2.1-or-later
- arch rolling: dovecot 2.4.5-1 Β· MIT AND LGPL-2.1-only
- fedora 43: dovecot 1:2.4.5-1.fc43 Β· MIT AND LGPL-2.1-only
- fedora 44: dovecot 1:2.4.5-1.fc44 Β· MIT AND LGPL-2.1-only
- nixos 26.05: dovecot 2.4.5
- nixpkgs unstable: dovecot 2.4.5
- opensuse-leap 16.0: dovecot24 2.4.5-160000.1.1 Β· BSD-3-Clause AND LGPL-2.1-or-later AND MIT
- opensuse-leap 16.0: dovecot24 2.4.5-160000.1.1 Β· BSD-3-Clause AND LGPL-2.1-or-later AND MIT
- opensuse-leap 16.0: dovecot24 2.4.5-160000.1.1 Β· BSD-3-Clause AND LGPL-2.1-or-later AND MIT
- opensuse-leap 16.0: dovecot24 2.4.5-160000.1.1 Β· BSD-3-Clause AND LGPL-2.1-or-later AND MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms