sendmail: Configuring Gmail as sendmail email relay
This guide describe the steps needed to configure your Gmail account as sendmail email relay.
Requirements
sendmail
package on your machine- Gmail account
- Connectivity to smtp.gmail.com on 587/tcp port
Preparation
The first step, backup the sendmail configuration, for restore the previous configuration in case something goes wrong:
# cd /etc/mail # cp sendmail.cf sendmail.cf.orig # cp sendmail.mc sendmail.mc.orig
SMTP Authentication
In the next step, we need to create a file to store the credentials Gmail to access to the smtp server.
Create the /etc/mail/auth
directory:
# mkdir -m 700 -p /etc/mail/auth
Create auth-info
file to store the Gmail credentials:
# touch /etc/mail/auth/auth-info
Open the auth-info
file in your text-editor and copy & paste the follow lines. Replace <USERNAME>
and <PASSWORD>
placeholders with your credentials:
AuthInfo:smtp.gmail.com "U:root" "I:<USERNAME>@gmail.com" "P:<PASSWORD>"
Save the file and make the database-map:
# cd /etc/mail/auth # makemap hash auth-info < auth-info
At the end of execution will be created auth-info.db
file.
For strong security, set the read-write permission only for root user:
# chmod 0600 /etc/mail/auth/*
Configure your sendmail.mc
Open /etc/mail/sendmail.mc
file in your text-editor and copy the follow lines and paste before the first MAILER 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_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl FEATURE(`authinfo',`hash /etc/mail/auth/auth-info')dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
Save the file and make the sendmail.cf
:
# cd /etc/mail # m4 sendmail.mc > sendmail.cf
Send the test email
Restart sendmail
service:
# sh /etc/rc.d/rc.sendmail restart
Now, you are ready for send the first email:
$ echo 'e-Mail TEST'| mail -s TEST john.doe@example.org