Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Send Email via Gmail SMTP Cmd Line ====== **General Information** Send an e-mail message from a bash script or command line program. **Checklist** * Distro(s): Debian/Ubuntu based ---- ===== Install msmtp ===== This package will allow you to configure what gmail account to send from and will connect securely via TLS to the gmail SMTP servers. <code bash> sudo apt-get install msmtp-mta </code> ---- ===== Install Mailx ===== Install a simple mail transfer agent to actually prepare the e-mail message. <code bash> sudo apt-get install heirloom-mailx </code> ---- ===== Configure Gmail Account on MSMTP ===== 1) Create a file in your home directory called ".msmtprc" <code bash> vim ~/.msmtprc </code> 2) Paste the following into the config file, change the "your_address" x2 and "your_gmail_password" to refect your information: <code bash> #Gmail account defaults logfile ~/msmtp.log account gmail auth on host smtp.gmail.com from your_address@gmail.com auth on tls on tls_trust_file /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt user your_address@gmail.com password your_gmail_password port 587 account default : gmail </code> **Note:** If you use two factor authentication for gmail, you will need to create an application specific password for this config file. To do that: * Login to Gmail * Click your Account Icon (top right), then Account * Click on the Security tab on the top * In the "Sign-in" box, accross from App Passwords, click on Settings. * Select a custom name and type something to describe msmtp so you won't forget what it is for. * Click Generate * Copy and paste the password from the pop up box into the config file above as "your_gmail_password" 3) Secure the config file Since it contains credentials, ensure only you can read it: <code bash> chmod 600 .msmtprc </code> ---- ===== Configure Mailx ===== Setup mailx to use msmtp to send e-mail. Create a .mailrc in your home folder: <code bash> vim ~/.mailrc </code> Paste the following in: <code bash> set sendmail="/usr/bin/msmtp" set message-sendmail-extra-arguments="-a gmail" </code> ---- ===== Send mail from the command line ===== ==== Interactively ==== <code bash> mail -s "Subject Here" address@destination.com </code> You will now be able to type in your message. When you want to send it, type ENTER to go to a blank line and then Ctrl+D to end/send. ==== Auto Messages ==== To send an e-mail from a script, you will need to pre-write your message. Populate a text file, such as "message.txt" with the e-mail to be sent. Then, send it like this: <code bash> mail -s "My Awesome Message Subject" importantperson@cooldomain.com < message.txt </code> linux_wiki/send_email_via_gmail_smtp_cmd_line.txt Last modified: 2019/05/25 23:50(external edit)