Howto send e-mails from command-line using msmtp


Some times, you may want to send an e-mail from the command line. If the host from which you are sending the e-mail does not have proper DNS configuration (reverse DNS too), the e-mail will not be sent. In these situations, what you can do is use a remote smtp server to send the e-mail. For this your e-mail client and MTA need to be configured to use the remote smtp server. This configuration depends on what MTA (Postfix, Sendmail, Exim, ..) and which e-mail client (mailx, mutt, mail ..) you are using

The msmtp tool is an all-in-one e-mail client and MTA. The user can specify the smtp server among several other things in the command line.


Installing msmtp

Under Debian/Ububtu :

apt-get install msmtp

Under FreeBSD :

pkg_add -vrf msmtp


Using msmtp

To send an e-mail through a remote smtp server:

 cat message | /usr/bin/msmtp --host=smtpserver.com -f from@example.fom  to@example.com

Optional :

To create a secure ssh tunnel with the smtp server and transport the e-mail over the ssh tunnel.

  sudo ssh -N -l yourlogin -L 25:localhost:25 -L 143:localhost:143 smtpserver.com

Note that the above command also creates a tunnel for imap(143).

Now you can use msmtp as follows (localhost instead of smtpserver.com)

 cat message | /usr/bin/msmtp --host=localhost -f from@example.fom  to@example.com


Labels: , Wireless Internet Security Coding Network Monitoring

Comment

Enter your comment (wiki syntax is allowed):
JVSXJ

Wireless Internet Security Performance RADIUS server Wireless Internet Security Performance RADIUS server