How to install postfix to relay mail through gmail in Ubuntu
Once I got my svnmanager working on Ubuntu, I still had problems sending mail. I pointed the domain mx record to the right direction, but for some reason my port 25 was refusing connections. So I decided to relay the mail through my gmail account.
First, install postfix if you haven’t already:
sudo apt-get install postfix
Now, to set up postfix, make sure that you have these files:
/etc/postfix/main.cf
/etc/postfix/generic
/etc/postfix/generic.db
/etc/postfix/sasl/passwd
/etc/postfix/sasl/passwd.db
which you can create via touch command like:
 
cd /etc/postfix
sudo touch generic
Next, edit /etc/postfix/main.cf (via command: sudo gedit /etc/postfix/main.cf), here is mine
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
#readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = localhost
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
#myorigin = /etc/mailname
mydestination = my-ubuntu, localhost.localdomain, localhost
relayhost = [smtp.gmail.com]:587
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
inet_protocols = all
##########################################
##### non debconf entries start here #####
##### client TLS parameters #####
smtp_tls_loglevel=1
smtp_tls_security_level=encrypt
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/etc/postfix/sasl/passwd
smtp_sasl_security_options = noanonymous
##### map username@localhost to username@gmail.com #####
smtp_generic_maps=hash:/etc/postfix/generic
Next, edit /etc/postfix/generic
sudo gedit /etc/postfix/generic
and have replace user_name and email_address with your credentials, add all users that may send email through gmail:
user_name@localhost   email_address@gmail.com
root@localhost   email_address@gmail.com
svnmanager@192.168.1.5 email_address@gmail.com
Now lets generate generic.db from this file:
cd /etc/postfix
sudo postmap generic
Next, lets add your gmail credentials to password file:
cd /etc/postfix/sasl
sudo gedit passwd
Copy this, replace email_address with your gmail email username and gmail_password with your gmail password:
[smtp.gmail.com]:587   email_address@gmail.com:gmail_password
Save the file, lets generate passwd.db now:
cd /etc/postfix/sasl
sudo postmap passwd
chown root.root passwd passwd.db
chmod 600 passwd passwd.db
Restast postfix:
/etc/init.d/postfix restart
Test (replace user_name with your user name):
echo 'test email' | mail -s 'just a test' email_address@gmail.com
sudo sendmail -bv user_name
sudo sendmail -bv email_address@gmail.com
You should receive the email now, sent from your localhost.
If there are any problems, check you /var/log/mail.log









