Update: I'm adding additional instructions for installing nail on newer versions of Ubuntu. You can use mailx as others have suggested later in the thread, but I like nail's -A option, which the instructions below depend on and for which I could not find an equivalent in mailx. I've reposted a complete 6-step guide on my blog.
I'm copying this from my blog where the markup may be a little neater. I only wish it could be a little simpler. Link at bottom.
problem
I want to send email using the command line on my laptop Ubuntu system. Mainly for cron jobs and automated backups. I want to be able to do so without having to set up a full-fledged MTA like sendmail or exim. And I want to be able to use either my ISP email account or a Gmail account.
Seemed simple enough and it probably is for people who do this type of thing for a living. Took me all night. So hopefully this will save someone else (perhaps me again) hours of unnecessary frustration in the future.
solution
First, look at this diagram from Wikipedia: http://en.wikipedia.org/wiki/Email#Workings. Without being able to find a simple step-by-step tutorial to guide me, the biggest problem I was having was sorting out what was my MUA, what was my MTA, and what if anything I needed to connect the two. Long story short, they are as follows:
MUA (the client): nail (you can also use mailx or mutt or what you will)
MTA (the mail server): your isp or gmail
MSA (smtp middle man): msmtp (a simple MTA that gets mail from your local MTA to your real MTA or mailhub)
step-by-step
For newer versions of Ubuntu (post-Gutsy), add Breezy archive to your repository
Code:
$ sudo gedit /etc/apt/sources.list
Add the following lines at the bottom of the file:
Code:
# breezy repositories (added to install nail)
# see http://old-releases.ubuntu.com/releases/ for more info
deb http://old-releases.ubuntu.com/ubuntu/ breezy universe
Update:
Code:
$ sudo apt-get update
Install the needed programs
Code:
$ sudo apt-get install msmtp
$ sudo apt-get install nail
Install Thawte certificate for Gmail
This is necessary (I think) for Gmail. Probably the most complicated step, though not too bad thanks to instructions here:
Code:
$ mkdir -p ~/etc/.certs
$ chmod 0700 ~/etc/.certs
$ cd ~/etc/.certs
$ wget https://www.verisign.com/support/thawte-roots.zip --no-check-certificate
$ unzip thawte-roots.zip
$ cp Thawte\ Server\ Roots/ThawtePremiumServerCA_b64.txt ThawtePremiumServerCA.crt
Configure msmtp
Replace UPPERCASE text with your personal settings
This will open up an msmtp configuration file where you'll want to copy the following lines, with your correct settings, of course:
Code:
# config options: http://msmtp.sourceforge.net/doc/msmtp.html#A-user-configuration-file
defaults
logfile /tmp/msmtp.log
# isp account
account isp
auth login
host SMTP.YOURISP.COM
port 25
user YOURNAME@ISP.COM
from YOURNAME@ISP.COM
password *****
# gmail account
account gmail
auth on
host smtp.gmail.com
port 587
user YOURNAME@gmail.com
password *****
from YOURNAME@gmail.com
tls on
tls_trust_file /home/USER/etc/.certs/ThawtePremiumServerCA.crt
# set default account to use (from above)
account default : isp
Change permission on this file or msmtp will complain:
Code:
$ chmod 600 ~/.msmtprc
Configure nail
Send test messages for both accounts
Code:
$ echo -e "testing email from the command line" > /tmp/test_email
$ nail -s "isp test" YOURNAME@gmail.com < /tmp/test_email
$ nail -A gmail -s "gmail test" YOURNAME@gmail.com < /tmp/test_email
Check your gmail account and you should have two new messages -- one from that account and one from your ISP account. To check your log:
Code:
$ gedit /tmp/msmtp.log
Hope this helps someone. I know I could have used it!
Original source: http://phosphorusandlime.blogspot.co...ine-email.html
Bookmarks