msmtp - light SMTP client with support for server profiles
msmtp is an SMTP client that can be used to send mails from Mutt and probably other MUAs (mail user agents). It forwards mails to an SMTP server (for example at a free mail provider), which takes care of the final delivery. Using profiles, it can be easily configured to use different SMTP servers with different configurations, which makes it ideal for mobile clients.
setting file is located in ~/.msmtprc to send email via gmail account:
# Set default values for all following accounts. defaults port 587 tls on tls_trust_file /etc/ssl/certs/ca-certificates.crt account gmail host smtp.gmail.com from <user>@gmail.com auth on user <user> passwordeval gpg --no-tty -q -d ~/.msmtp-gmail.gpg # Set a default account account default : gmail
then create a GPG encrypted password file, by command:
gpg --encrypt -o .msmtp-gmail.gpg -r <user>@gmail.com -
The ending dash is not a typo, rather it causes gpg to use stdin. After running that snippet of code, type in your password, press enter, and press Control-d so gpg can encrypt your password.
To test it run
type-in your message, then press Ctrl-D(EOF) to send it. Then you should find your sent e-mail in the _recipient_address_'s inbox shortly afterwards. gpg-agent will be prompted out to ask for GPG passphrase when sending email.
When a standard MTA interface is desired but a full server like Postfix or exim is not desided then the msmtp-mta package can be installed:
sudo apt install msmtp-mta
The package provides a /usr/sbin/sendmail symlink to msmtp that other software can use to send mail. The msmtp-mta package also provides a msmtpd daemon that listens on 127.0.0.1:25. This is disabled by default. Keep in mind that the daemon has no way to know which user is connecting to it, so it has to way to use the user's .msmtprc. The system-wide /etc/msmtprc will still apply.
The MTA setup can be tested using with bsd-mailx:
mail -s "teste" firstname.lastname@example.org < /dev/null