Sometimes its necessary to relay your mail through a third party provider. If your server environment has a dedicated sendmail server (most do), then this scenario is applicable to you. It is ideal to centralize your outgoing mail to one server so that changes, policies and configuration is located in a single place.
In this scenario, outgoing mail is relayed to google’s domain mail in an Exim mail environment. These steps are fairly straightforward and will hopefully help you to utilize google’s free mail service to send your mail.
Note that google has queuing and mass mail restrictions so if you plan on sending alot of mail this way, you will just get blocked.
- 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
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 = : email@example.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
That should be it. You can test by using the command line mail client.
echo "test" | mail -s "subject" firstname.lastname@example.org