id = "msmtp" name = "msmtp" homepage = "https://marlam.de/msmtp/" description = "SMTP client with sendmail compatible interface." executables = ["msmtp", "msmtpd"] [dotfiles] # https://marlam.de/msmtp/msmtp.pdf — the user configuration is ~/.msmtprc # or $XDG_CONFIG_HOME/msmtp/config. Passwords may be stored in either file, # so the credential field is excluded below while the remaining settings sync. paths = ["~/.msmtprc", "[configHome]/msmtp/config"] secret = [] [[dotfiles.secret_paths]] file = ["~/.msmtprc", "[configHome]/msmtp/config"] match = { prefix = ["password"] } [commands] format = 1 label = "Send mail" description = "Send a message read from standard input through an SMTP account. TLS tuning, logging and queue modes are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "manual" kind = "manual" url = "https://marlam.de/msmtp/msmtp.html" revision = "man page 2026-10" evidence = """ msmtp [option...] [--] recipient... msmtp [option...] -t [--] [recipient...] msmtp [option...] --serverinfo -P, --pretend -v, -d, --debug -S, --serverinfo -C, --file=filename -a, --account=account_name --host=hostname --port=number --tls[=(on|off)] -f, --from=address -t, --read-recipients --read-envelope-from """ [[commands.field]] id = "recipients" label = "Recipients" type = "string" position = 0 multiple = true sources = ["manual"] [[commands.field]] id = "account" label = "Account" type = "string" option = ["--account", "-a"] sources = ["manual"] [[commands.field]] id = "from" label = "Envelope from" type = "string" option = ["--from", "-f"] sources = ["manual"] [[commands.field]] id = "read_recipients" label = "Read recipients from headers" type = "boolean" option = ["--read-recipients", "-t"] sources = ["manual"] [[commands.field]] id = "file" label = "Config file" type = "path" option = ["--file", "-C"] path = { kind = "file", role = "input" } sources = ["manual"] [[commands.field]] id = "pretend" label = "Pretend (print settings only)" type = "boolean" option = ["--pretend", "-P"] sources = ["manual"] [[commands.field]] id = "debug" label = "Debug output" type = "boolean" option = ["--debug", "-d"] sources = ["manual"] [[commands.field]] id = "serverinfo" label = "Show server info" type = "boolean" option = ["--serverinfo", "-S"] sources = ["manual"] [[commands.task]] id = "send" label = "Send mail" fields = ["account", "from", "recipients", "read_recipients"] required = ["account"] [[commands.task]] id = "server-info" label = "Inspect SMTP server" set = { serverinfo = [true] } lock = ["serverinfo"] fields = ["account", "serverinfo", "file"] required = ["account"] [[commands.group]] id = "basic" label = "Basic" fields = ["account", "from", "recipients", "read_recipients"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["file", "pretend", "debug", "serverinfo"]