Msmtp: Difference between revisions
imported>Onny Refactor page |
→Configuration: merged from zfs article |
||
| (9 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
[https://marlam.de/msmtp/ msmtp] is | [https://marlam.de/msmtp/ msmtp] is an easy to configure basic email sender client with fairly complete sendmail compatibility. | ||
== Installation == | == Installation == | ||
| Line 10: | Line 10: | ||
programs.msmtp = { | programs.msmtp = { | ||
enable = true; | enable = true; | ||
accounts = { | accounts.default = { | ||
host = "example.org"; | |||
from = "hello@example.org"; | |||
user = "hello@example.org"; | |||
password = "mypassword123"; | |||
}; | }; | ||
}; | }; | ||
| Line 25: | Line 23: | ||
This configuration will automatically set ''msmtp'' as the default mail delivery client on your system by overwriting the <code>sendmail</code> binary. To test mail delivery issue following command: | This configuration will automatically set ''msmtp'' as the default mail delivery client on your system by overwriting the <code>sendmail</code> binary. To test mail delivery issue following command: | ||
<syntaxhighlight lang="console"> | |||
# echo -e "Content-Type: text/plain\r\nSubject: Test\r\n\r\nHello World" | sendmail john.doe@mail.com | |||
</syntaxhighlight> | |||
A mail with the subject ''Test'' will be sent to the recipient ''john.doe@mail.com'' including the body text ''Hello World''. A Mime-Header is added to the mail content for better compatibility. | |||
== Configuration == | == Configuration == | ||
| Line 36: | Line 36: | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
{ | |||
enable = true; | age.secrets.msmtp = { | ||
file = "${inputs.self.outPath}/secrets/msmtp.age"; | |||
}; | |||
# for zed enableMail, enable sendmailSetuidWrapper | |||
services.mail.sendmailSetuidWrapper.enable = true; | |||
programs.msmtp = { | |||
passwordeval = "cat | enable = true; | ||
setSendmail = true; | |||
defaults = { | |||
aliases = "/etc/aliases"; | |||
port = 587; | |||
auth = "plain"; | |||
tls = "on"; | |||
tls_starttls = "on"; | |||
}; | |||
accounts = { | |||
default = { | |||
host = "smtp.mail.example.com"; | |||
passwordeval = "cat ${config.age.secrets.msmtp.path}"; | |||
user = "myname@example.com"; | |||
from = "myname@example.com"; | |||
}; | |||
}; | }; | ||
}; | }; | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 55: | Line 70: | ||
=== Aliases === | === Aliases === | ||
Then, configure an alias for root account. With this alias configured, all mails sent to root, such as cron job results and failed sudo login events, will be redirected to the configured email account. | |||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
{ | |||
environment.etc.aliases.text = '' | |||
root: admin@example.com | |||
''; | |||
environment.etc | } | ||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||