Tested on Ubuntu Server 12.04

1. Introduction

In this configuration tutorial we will guide you through the process of configuring sendmail to be an email relay for your gmail or google apps account. This allows you to send email from your bash scripts, hosted website or from command line using mail command. Other examples where you can utilize this setting is for a notification purposes such or failed backups etc. Sendmail is just one of many utilities which can be configured to rely on gmail accounts where the others include postfix, exim , smpt etc. In this tutorial we will use Debian and sendmail for this task.

2. Install prerequisites

# apt-get install sendmail mailutils sendmail-bin 

3. Create Gmail Authentication file

# mkdir -m 700 /etc/mail/authinfo/
# cd /etc/mail/authinfo/

Next we need to create an auth file with a following content. File can have any name, in this example the name is gmail-auth:

# sudo nano /etc/mail/authinfo/gmail-auth

Put this in gmail-auth:

AuthInfo: "U:root" "I:YOUR GMAIL EMAIL ADDRESS" "P:YOUR PASSWORD"

Replace the above email with your gmail or google apps email.

Please note that in the above password example you need to keep ‘P:’ as it is not a part of the actual password.

In the next step we will need to create a hash map for the above authentication file:

# makemap hash gmail-auth < gmail-auth

4. Configure your sendmail 

Put bellow lines into your sendmail.mc configuration file right above first “MAILER” definition line:

define(`SMART_HOST',`[smtp.gmail.com]')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/authinfo/gmail-auth.db')dnl

Do not put the above lines on the top of your sendmail.mc configuration file!

In the next step we will need to re-build sendmail’s configuration. To do that execute:

# make -C /etc/mail

Reload sendmail service:

/etc/init.d/sendmail reload

and you are done.

5. Configuration test

Now you can send an email from your command line using mail command:

$ echo "Just testing my sendmail gmail relay" | mail -s "Sendmail gmail Relay" my-email@my-domain.com

If you will experience substitutionary delays after executing the above command, the most likely cause is that you have not configured your host with FQDN.  Check your logs for a warning.

http://linuxconfig.org



 Pro tip

Install ownCloud and host your own private cloud. Download  the pre-configured ownCloud VM today!