MSMTP

From ArchWiki

Jump to: navigation, search


Msmtp is a very simple and easy to use smtp client.

Quick Start

msmtp is in the [extra] repository.

 pacman -S msmtp

Open up ~/.msmtprc in your favorite editor. The following is an example of an .msmtprc for several accounts:

# A first gmail address
account gmail
host smtp.gmail.com
port 587
protocol smtp
auth on
from username@gmail.com
user username@gmail.com
password mypassword
tls on
tls_starttls on
tls_trust_file /usr/share/ca-certificates/mozilla/Thawte_Premium_Server_CA.crt

# A second gmail address
account gmail2 : gmail
from username2@gmail.com
user username2@gmail.com
password mypassword2

# A freemail service
account freemail
host smtp.freemail.example
from joe_smith@freemail.example
auth on
user joe.smith
password secret

# A provider's service
account provider
host smtp.provider.example

# Set a default account
account default : gmail

Note: it looks like Google's in the process of becoming it's own certificate authority. For some users, they seem to have switched to a "Google Certificate Authority" certificate, which is rooted in Equifax. As such, the certificate line may have to be,

tls_trust_file /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt

Note: if you are completely deseperate, but are 100% sure you are communicating with the right server, you can always disable the certification check :

tls_certcheck off

The config file needs to be read/write only to the user:

chmod 600 ~/.msmtprc
  • Remark: If you don't like to write your password into the file you may omit the "password" parameter entirely. In that case msmtp asks you for your password when sending mail. However this only works if you're using msmtp from an interactive shell like bash. If you're using mutt this (sadly) doesn't work.

Issues with TLS

If you see the following message :

 msmtp: TLS certificate verification failed: the certificate hasn't got a known issuer

It probably means your tls_trust_file is not right.

Just follow the fine manual. It explains you how to find out the server certificate issuer of a given smtp server. Then you can explore the /usr/share/ca-certificates/ directory to find out if by any chance, the certificate you need is there. If not, you will have to get the certificate on your own.

Using Msmtp Offline

Although msmtp is great, it requires that you be online to use it. This isn't ideal for people on laptops with intermittent connections to the Internet or dialup users. Several scripts have been written to remedy this fact, collectively called msmtpqueue.

The scripts can be downloaded from SourceForge, the most recent of which is msmtpqueue-0.5.tar.gz.

Once the scripts have been downloaded extract them using:

tar xvzf msmtpqueue-0.5.tar.gz

Make them executable:

chmod 700 msmtpqueue-0.5/*.sh

After that, copy the scripts to a convenient location on your computer (/usr/local/bin is a good choice):

cp msmtpqueue-0.5/*.sh /usr/local/bin/

Make a ~/.msmtpqueue folder:

mkdir ~/.msmtpqueue

Finally, change your MUA to use msmtp-enqueue.sh instead of msmtp when sending e-mail. Queued messages will be stored in ~/.msmtpqueue.

When you want to send any mail that you've created and queued up run:

/usr/local/bin/msmtp-runqueue.sh

Adding /usr/local/bin to your PATH can save you some keystrokes if you're doing it manually. The README file that comes with the scripts has some handy information, reading it is recommended.

Personal tools