Skip to content

Instantly share code, notes, and snippets.

@blackknight36
Forked from roubles/EmailOSXCommandLine.md
Last active December 15, 2022 00:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save blackknight36/06930778c16af4964832282fed9181f8 to your computer and use it in GitHub Desktop.
Save blackknight36/06930778c16af4964832282fed9181f8 to your computer and use it in GitHub Desktop.
Send email from OSX Command line using gmail as SMTP

#Step 1: Update /etc/postfix/main.cf

$ sudo vim /etc/postfix/main.cf

Add the following lines, anywhere really, but preferably under the relayhost section:

relayhost = smtp.gmail.com:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_sasl_mechanism_filter = plain

#Step 2: Create /etc/postfix/sasl_passwd

sudo vim /etc/postfix/sasl_passwd

Add the following information. Note update and <app_password> with your application password. This requires setting up 2FA on your Gmail account first.

See https://opensource.com/article/21/7/gmail-linux-terminal for more info.

smtp.gmail.com:587 <username>@<gmail.com>:<app_password>

#Step 3: Restart postfix

sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
sudo launchctl stop org.postfix.master
sudo launchctl start org.postfix.master

#Test

$ echo "Hello" | mail -s "Test" <someone>@gmail.com

#Troubleshooting

log stream --predicate  '(process == "smtpd") || (process == "smtp")' --info
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment