If sending mail via your localhost is unreliable or not working, try setting up postfix to use an SMTP account through Mandrill. You can essentially use any SMTP account, but Mandrill has nice features that allow better monitoring of messages and if they are being delivered.
Edit the postfix config file.
sudo vi /etc/postfix/main.cf
Add the following settings to the very bottom of the main.cf file.
# Mandrill SMTP relayhost = [smtp.mandrillapp.com]:587 # Enable SASL Authentication smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_sasl_mechanism_filter = plain # Enable TLS (SSL) smtp_use_tls = yes
Verify the following three variables are set correctly in the main.cf file (these may appear anywhere in your file).
mydomain_fallback = localhost mail_owner = _postfix setgid_group = _postdrop
Set SASL login credentials by editing the password file.
sudo vi /etc/postfix/sasl_passwd
Enter your host, username, and password in the following format.
Create the postfix lookup table from the sasl_passwd file. This will generate the file sasl_passwd.db. Note that anytime you edit the sasl_passwd file you will need to run this command.
$ sudo postmap hash:/etc/postfix/sasl_passwd
sudo postfix reload
Send a Test Message
$ date | mail -s testing email@example.com
You may need to run these to check on the status of postfix.
$ sudo postfix status # check if postfix is running $ sudo postfix start # start postfix $ mailq # check mail queue $ sudo postfix flush # force mail in queue to send $ tail -f /var/log/mail.log # monitor mail logs