DOVEADM-EXEC(1)

✨ DOVEADM-EXEC ✨

okay bestie, welcome to doveadm-exec β€” the part of the doveadm(1) manual that's literally just "run the thing, no thoughts, head empty, except the thing lives in Dovecot's libexec directory". It's giving personal assistant energy for your server. πŸŽ€


πŸ’« NAME πŸ’«

doveadm-exec β€” easily execute commands from Dovecot's libexec directory. Yes, "easily" is doing a lot of work there but honestly? It earned it. 🫢


🌸 SYNOPSIS 🌸

doveadm [GLOBAL OPTIONS] exec binary [binary arguments]

πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the vibe: this command lets administrators and local users just… run commands that live inside /usr/libexec/dovecot. No hunting through directories, no cd-ing around like a lost little fairy. 🧚

Like, say a logged-in system user wants to start a pre-authenticated imap session? They can literally just go:

doveadm exec imap

and boom, we're in. ✨

And if you're an administrator and you want to do the same thing but as somebody? You'd run:

doveadm exec imap -u username

periodt. πŸ‘‘


πŸ‘‘ GLOBAL OPTIONS πŸ‘‘

These are the global doveadm(1) options, bestie β€” they apply across the board:

  • -D β€” turns on verbosity and debug messages. For when you need the tea, all of it. πŸ”
  • -O β€” do NOT read any config file, just use the defaults. The dovecot_storage_version setting defaults to the latest version, but heads up, you can still override it with -o. ⚠️
  • -k β€” preserve the entire environment for doveadm, not just the import_environment setting. Full vibe preservation. πŸ’…
  • -v β€” enables verbosity, including the progress counter. Little bar go brrr. πŸ“Š
  • -i instance-name β€” if you're running multiple Dovecot instances, this picks which config file to use based on the instance name. Peep the instance_name setting for the full lore. 🌈
  • -c config-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 that's running a compatible version. 🫢
  • -o setting=value β€” overrides the configuration setting from /etc/dovecot/dovecot.conf and from the userdb with the given value. And if you need to override multiple settings? Just stack the -o option as many times as you want, she's repeatable. πŸ”₯

πŸ“ ARGUMENTS πŸ“

  • binary β€” the name of an executable located in /usr/libexec/dovecot. That's it, that's the one. 🎯
  • binary arguments β€” options and arguments which will be passed through to the binary. Straight through, no middleman, no editing. πŸ’Œ

⭐ EXAMPLE ⭐

This one demonstrates how to deliver a message from a file to a user's mailbox. Iconic behaviour tbh:

doveadm exec dovecot-lda -d user@example.net -f admin@example.net < ~/stuff/welcome.msg

Look at that redirect at the end doing its little thing. 🌟


😭 REPORTING BUGS 😭

Found a bug? (Not me, I would never. πŸ™ˆ) Report it β€” and please include your doveconf -n output β€” to the Dovecot Mailing List ⟨dovecot@dovecot.org⟩.

Info about reporting bugs lives at: ⟨https://dovecot.org/bugreport.html⟩


πŸ’– SEE ALSO πŸ’–


okay that's the whole page, bestie, you ate it up. πŸŽ€βœ¨ this was brought to you by the Dovecot crew, page id f979264, dated April 2026 β€” DOVEADM-EXEC(1), slay, go run something. πŸ’…πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from