Sending Mails with own Exim: Google account example.

Today I'll describe, how to configure sending of emails with your Debian or other Linux distribution. The ability of sending mails is very useful feature for every long-running server machine, it's easy and common way to notify the administrator on problems.

Here are configurationsteps for mail-sending with Exim and Googlemail account (google Apps accounts work the same way too).

  • first of all we need working Exim. If not installed - install exim4.
apt-get update  
apt-get install exim4  
  • Configuration should start automatically after the installation. However you can start configuration of exim every-time with
dpkg-reconfigure exim4-config  
  • Answer all questions of configuration wizard. The important one is.
    • a general type of mail configuration. Choose "sent by smarthost" if you wanna use the ability of e.g. Googlemail account. Then SMTP with dynamic IP would be difficult ;)
    • Provide a System Mail Name: e.g. mycompany.com
    • Provide IP addresses to listen on for incoming SMTP connections

Use 127.0.0.1 if you want only send emails from local machine and nothing for other ip's.

  • Provide Machine handling outgoing mail for this host (smarthost): smtp.gmail.com::587 Other parameters1 are not so important to simple start.

  • Now it's time to provide credentials of your gmail account. Therefore you need edit /etc/exim4/passwd.client file. Insert that for Standard or google app account but replace with valid mail and password.

gmail-smtp.l.google.com:yourYourMail@googlemail.com:yourPass  
*.google.com:yourYourMail@googlemail.com:yourPass
smtp.gmail.com:yourYourMail@googlemail.com:yourPass  
  • Make sure /etc/exim4/passwd.client belongs to user root and group Debian-exim which is normal so on my Debian. If not, run that command:
chown root:Debian-exim /etc/exim4/passwd.client  
  • Actualize the whole configuration with:
update-exim4.conf  

Your 're done!
Now it's test it with.

echo "Server Mail Test Message " | mail -s "Just Test" SomeMail@someDomain.org  

Watch logs with:

tail -1000f /var/log/exim4/mainlog  

When you see something like this everything vent perfect.

2010-02-14 23:00:26 1NgmVu-0007v8-Kt < = root@mail-server1.mycompany.com U=root P=local S=424  
2010-02-14 23:00:28 1NgmVu-0007v8-Kt => testMail@mycompany.org R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com [72.14.221.109] X=TLS1.0:RSA_ARCFOUR_MD5:16 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=smtp.gmail.com"