Installing and Configuring Exim4 for Gmail SMTP Relay
Reference: http://www.stardothosting.com/blog/2010/05/relay-exim-mail-to-google-mail-in-debian-linux/
Reference: http://php.quicoto.com/setup-exim4-to-use-gmail-in-ubuntu/
Reference: http://tompurl.com/2011/09/17/exim-gmail-on-ubuntu/
Create gmail account
Create a gmail account, and be sure to switch Allow less secure apps: ON in the Sign-in and Security Section,
Pre-requisites
apt-get install -y exim4-base exim4-config exim4-daemon-light libmailutils4 mailutils mutt
Step 1
Run dpkg-reconfigure exim4-config
1. Choose mail sent by smarthost; received via SMTP or fetchmail
2. Type System Mail Name: e.g. company.com
3. Type IP Adresses to listen on for incoming SMTP connections: 127.0.0.1
4. Leave Other destinations for which mail is accepted blank
5. Leave Machines to relay mail for: blank
6. Type Machine handling outgoing mail for this host (smarthost): smtp.gmail.com::587
7. Choose NO, don’t hide local mail name in outgoing mail.
8. Chose NO, don’t keep number of DNS-queries minimal (Dial-on-Demand).
9. Choose mbox
10. Choose NO, split configuration into small files
11. Mail for postmaster. Leaving blank will not cause any problems though it is not recommended
Step 2
1. Open the file /etc/exim4/exim4.conf.template
pico /etc/exim4/exim4.conf.template
2. Find the line .ifdef DCconfig_smarthost DCconfig_satellite and add the following in that section
send_via_gmail: driver = manualroute domains = ! +local_domains transport = gmail_smtp route_list = * smtp.gmail.com
If you have any other smarthost defined with “domains = ! +local_domains” remove that smarthost.
3. Find the “begin authenticators”. In that section add the following
gmail_login: driver = plaintext public_name = LOGIN client_send = : yourname@gmail.com : YourGmailPassword
Make sure you have no other authenticators with the same public_name (LOGIN). Comment them out if needed (Thanks Jakub for reminding me)
4. Find the comment “transport/30_exim4-config_remote_smtp_smarthost”. In that section add
gmail_smtp: driver = smtp port = 587 hosts_require_auth = $host_address hosts_require_tls = $host_address
Step 3
1. Run update-exim4.conf
2. Do /etc/init.d/exim4 restart or service exim4 restart
That should be it. You can test by using the command line mail client.
Test :
echo "test" | mail -s "subject" test@email-to-send-to.com
If issues
Nuke and startover.
apt-get -y remove exim4 exim4-base exim4-config exim4-daemon-light apt-get -y purge exim4 exim4-base exim4-config exim4-daemon-light apt-get install exim4
Check exim4 queue
exim -bp
Purge exim4 queue
exim -bp | exiqgrep -i | xargs exim -Mrm
Also check this reference out:
http://blog.mansonthomas.com/2009/04/send-mail-through-gmail-smtp-server.html