A simple and secure SMTP-client daemon.
A typical scenario of using rusmtp is with clients like NeoMutt, where you
do not store your passwords unencrypted, but you still wish to get all the
benefits of using NeoMutt.
A typical installation would be as follows:
- Add
set sendmail="/PATH/TO/rusmtp"in muttrc. - Using GnuGP, encrypt your password and save the encrypted password.
- Add
passwordeval=gpg --quiet --no-tty --decrypt /PATH/TO/ENCRYPTED-PASSWORD.gpgto rusmtprc for each account. - Add the password to decrypt the encrypted password in gpg-agent, to avoid entering the password upon starting the deamon.
- Make rusmtpd to startup upon boot.
At its current state, the builtin SMTP client only supports ESMTP and only supports LOGIN (i.e. it uses username and password to authenticate the connection).
rusmtp is written in rust, and it can be built with cargo, to build it simply
run cargo build --release and have the daemon built for the host architecture.
Minimum supported version of rust is 1.28.0.
- base64 = "0.10"
- dirs = "1.0"
- docopt = "1.0"
- fs2 = "0.4"
- log = "0.4"
- log4rs = "0.8"
- native-tls = "0.2"
- rand = "0.5"
- ring = "0.13"
- rust-ini = "0.13"
- serde = "1.0"
- serde_derive = "1.0"
- lazy_static = "1.2"
- regex = "1"
One way to recompute the above list, please run the following command chain
for build in */Cargo.toml; do \
cat $build |\
rq -T -t 'at "[dependencies]"'; \
done |\
grep -v '^path = "../' |\
grep -v '^\[' |\
grep -v '^$' |\
sort -u
- Download the latest release
here, extract it and run
sudo ./install, it copies the executables to/usr/local/bin/{rusmtpc,rusmtpd} - Update the
~/.rusmtprcfile to match your preferences, for example the passwordeval setting can be:passwordeval=gpg --quiet --no-tty --decrypt /PATH/TO/ENCRYPTED-PASSWORD.gpg - Update your email-client configuration to use
/usr/local/bin/rusmtpcfor sending emails. - Make the
/usr/local/bin/rusmtpddaemon to run on startup.