Last active
August 14, 2022 11:44
-
-
Save JosefJezek/6194563 to your computer and use it in GitHub Desktop.
Sending emails using Gmail and msmtp on Ubuntu / Debian
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# Sending emails using Gmail and msmtp | |
# Author: [Josef Jezek](http://about.me/josefjezek) | |
# Donate: [Gittip](https://www.gittip.com/josefjezek) | |
# Link: [Gist](https://gist.github.com/6194563) | |
# Usage: setup-msmtp-for-gmail.sh | |
sudo apt-get update -q | |
sudo apt-get install msmtp-mta ca-certificates heirloom-mailx -yq | |
if command -v zenity >/dev/null; then | |
GMAIL_USER=$(zenity --entry --title="Gmail username" --text="Enter your gmail username with domain (username@gmail.com):") | |
GMAIL_PASS=$(zenity --entry --title="Gmail password" --text="Enter your gmail password:" --hide-text) | |
else | |
read -p "Gmail username with domain (username@gmail.com): " GMAIL_USER | |
read -p "Gmail password: " GMAIL_PASS | |
fi | |
echo # an empty line | |
if [ -z "$GMAIL_USER" ]; then echo "No gmail username given. Exiting."; exit -1; fi | |
if [ -z "$GMAIL_PASS" ]; then echo "No gmail password given. Exiting."; exit -1; fi | |
sudo tee /etc/msmtprc >/dev/null <<__EOF | |
# Accounts will inherit settings from this section | |
defaults | |
auth on | |
tls on | |
tls_certcheck off | |
# tls_trust_file /etc/ssl/certs/ca-certificates.crt | |
logfile /var/log/msmtp.log | |
# A first gmail address | |
account gmail | |
host smtp.gmail.com | |
port 587 | |
from $GMAIL_USER | |
user $GMAIL_USER | |
password $GMAIL_PASS | |
# A second gmail address | |
account gmail2 : gmail | |
from username@gmail.com | |
user username@gmail.com | |
password password | |
# A freemail service | |
account freemail | |
host smtp.freemail.example | |
from joe_smith@freemail.example | |
user joe.smith | |
password secret | |
# A provider's service | |
account provider | |
host smtp.provider.example | |
# Set a default account | |
account default : gmail | |
__EOF | |
sudo chmod 600 /etc/msmtprc | |
sudo chown -R www-data:www-data /etc/msmtprc | |
HOST=$(hostname) | |
sudo mail -vs "Email relaying configured at ${HOST}" $GMAIL_USER <<__EOF | |
The postfix service has been configured at host '${HOST}'. | |
Thank you for using this postfix configuration script. | |
__EOF | |
echo "I have sent you a mail to $GMAIL_USER" | |
echo "This will confirm that the configuration is good." | |
echo "Please check your inbox at gmail." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi, the scripts worked. Thank you for that, but the mail command still doesn't send mails..