id = "msmtp"
name = "msmtp"
homepage = "https://marlam.de/msmtp/"
description = "SMTP client with sendmail compatible interface."
executables = ["msmtp", "msmtpd"]
[dotfiles]
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"]