Installing and Configuring Exim4 for Gmail SMTP Relay

From Fyzix
Jump to: navigation, search

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