Postfix + Gmail SMTP server relay under Ubuntu OS
In order to preserve the useful information, I took information from the internet and posted here. The method was verified and works well for my situation.
I realize that there are too many tutorials on getting your Relaying Postfix SMTP via smtp.gmail.com to work. Most of them are long and complicated, but I found a tutorial from this particular website which provides the shortest, simplest, and the clearest tutorial on how to get it work in less than 5 minutes. I would like to post it here for my future use again, so that I don’t need to spend hours finding the right tutorial to get it done
Install the required packages
sudo aptitude install postfix libsasl2 ca-certificate libsasl2-modules
Configure Postfix
This tutorial will not outline how to configure your postfix server, but we’ll jump directly to the relayhost section. You’ll want to add the following lines to your /etc/postfix/main.cf file:
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_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes
The above lines are telling Postfix that you want to relay mail through gmail on a specific port, telling it to authenticate, and where to find the username and password. The last three lines specify the authentication types supported, where the certificate authority file is and that it should use tls.
Define Username and Password
Next we’ll need to populate the sasl_passwd file. Create the file /etc/postfix/sasl_passwd with the following contents:
[smtp.gmail.com]:587 user.name@gmail.com:password
This file should have restrictive permissions and then needs to be translated into a .db that Postfix will read.
sudo chmod 400 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
At this point you can restart Postfix and it should work, however it will complain about not being able to authenticate the certificate. To take care of this issue we’ll use the ca-certificate package we installed and tell it where it can validate the certificate.
cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | sudo tee -a /etc/postfix/cacert.pem
Go ahead and reload postfix (sudo /etc/init.d/postfix reload) and you should be set.
Taken from http://blog.jonloh.net/11/04/2010/postfix-gmail-smtp-relay-ubuntu.
Additional materials:
1) Warning message – No address associated with hostname
If the mail relayhost is wrong, you will get a lot of warning message in /var/log/mail.warn with the “No address associated with hostname”. That indicates you have to put a valid smtp relay mail server in the config file. Otherwise all your mail will be stuck in somewhere without your notice.
2) Warning message – no route to host in the mail.log
I checked mail.log and found “no route to host” after I put gmail smtp as the mail relay server. The reason I got this was I did not get the TLS authentication correctly. After I corrected it, everything goes smoothly without error.
3) Error message – 530 5.7.0 Must issue a STARTTLS command first
This message actually came from the gmail smtp server. It tells you something is not right. Actually it is the same problem as the point 2). Gmail smtp server needs TLS authentication.
