How to send mail from command line with Gmail and Mutt
Written by Guillermo Garron
Date: 2010-10-12 10:36:30 00:00
If you are like me, you really like the command line.
And sending email while working on the command line, is sometimes a good idea, I use it to send notes to myself, and sometimes to send configuration files as attachments.
Is also good to have an option configured to send emails from the command line, as a way to send messages from scripts.
I will show you now how to use mutt and gmail to enable a Linux computer to send email.
Install mutt
Arch Linux
sudo pacman -S mutt
Ubuntu
sudo aptitude install mutt
Configure mutt
To configure it, we need to create ~./muttrc and put inside the file this contents
set from = "user@gmail.com"
set realname = "Guillermo Garron"
set imap_user = "user@gmail.com"
set imap_pass = "password"
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed ="+[Gmail]/Drafts"
set header_cache =~/.mutt/cache/headers
set message_cachedir =~/.mutt/cache/bodies
set certificate_file =~/.mutt/certificates
set smtp_url = "smtp://user@smtp.gmail.com:587/"
set smtp_pass = "password"
set move = no
set imap_keepalive = 900
Create the folders
mkdir -p /.mutt/cache
Change, for your user and your password, and you are done.
Sending emails
Now that mutt is configured it is ready to start sending emails.
mutt -s "Test from mutt" user@yahoo.com < /tmp/message.txt
And if you need to send an attachment
mutt -s "Test from mutt" user@yahoo.com < /tmp/message.txt -a /tmp/file.jpg
-s “Test from mutt” is the subject -a /tmp/file.jpg is the attachment /tmp/message.txt is the message itself
This is another way to write the test, having the body in the same line.
echo "This is the body" | mutt -s "Testing mutt" user@yahoo.com -a /tmp/XDefd.png
If you need to use send emails from a script, just use that line in the script, but be sure that is the user that has the .muttrc file in his / her home directory the one that runs the script.