Configure Sendmail to Use Gmail Relay on Ubuntu 18.04/Debian 10/9

6
8734

In this guide, we are going to learn how to configure Sendmail to use Gmail Relay on Ubuntu 18.04/Debian 10/9. Sendmail can be configured to relay mails via external mail servers including Gmail SMTP.

Configure Sendmail to Use Gmail Relay on Ubuntu 18.04/Debian 10/9

Install Sendmail on Ubuntu 18.04/Debian 10/9

Before you can install Sendmail, ensure that you remove other existing MTAs such as Postfix.

Using SSMTP to Send Email From Linu...
Using SSMTP to Send Email From Linux VPS Command Line Through Gmail Account
apt --purge autoremove postfix

Next, install Sendmail and other mail utilities if not installed already.

apt install sendmail sendmail-bin mailutils

Define Gmail Authentication Details

Next, you need to create a directory to store a file that defines how to connect to Gmail SMTP server for mail relay. Hence, create a directory as shown below;

mkdir -m 700 /etc/mail/authinfo

Next, create a file to store Gmail authentication details under the directory created above.

vim /etc/mail/authinfo/gmail-smtp-auth

The file should define Gmail authentication information should contain the line below;

AuthInfo: "U:root" "I:[email protected]" "P:GMAIL_USER_PASSWORD"

Where:

  • U (The user (authorization) identifier): defines the name of the user that sendmail will use to check allowable permissions.
  • I (The authentication Identifier): Name of the user allowed to setup a connection.
  • P: The clear text for the authentication user used to authorize the mail connections.

Replace USER ID and GMAIL_USER_PASSWORD with your Gmail account user ID and password respectively.

NOTE that the use of less secure app access has been deprecated. See how you can use App password as an alternative in the guide below;

Configure Postfix to Use Gmail App Passwords

Create Sendmail-Gmail Authentication Database Map

Next, you need to generate the Sendmail gmail authentication databas map from the above authentication information. You can use the makemap utility as shown below;

makemap hash /etc/mail/authinfo/gmail-smtp-auth < /etc/mail/authinfo/gmail-smtp-auth

This will create authentication database, /etc/mail/authinfo/gmail-smtp-auth.db.

Configure Sendmail Smart Host

A smart host/smarthost is used to specify an SMTP server that relays emails, in this case, smtp.gmail.com. This can be defined using SMART_HOST macro.

The definition should made in /etc/mail/sendmail.mc configuration file JUST BEFORE the MAILER definition. If you need to create a comment, begin a line with dnl.

Note the line;

FEATURE(authinfo',hash -o /etc/mail/authinfo/gmail-smtp-auth.db')dnl

Replace it with your Gmail Authentication sendmail database map you generated above.

vim /etc/mail/sendmail.mc
...
dnl #
dnl # Defining Gmail Smarthost for sendmail
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-smtp-auth.db')dnl
dnl #
dnl # Default Mailer setup
MAILER_DEFINITIONS
MAILER(`local')dnl
MAILER(`smtp')dnl

Regenerate Sendmail Configuration

Save the configuration file above and re-build Sendmail configuration.

make -C /etc/mail
...
Creating /etc/mail/relay-domains
# Optional file...
Updating Makefile ...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/Makefile...
Updating sendmail.cf ...
The following file(s) have changed:
  /etc/mail/relay-domains /etc/mail/sendmail.cf
** ** You should issue `/etc/init.d/sendmail reload` ** **
make: Leaving directory '/etc/mail'

Reload Sendmail

After rebuilding Sendmail configuration, reload Sendmail.

/etc/init.d/sendmail reload

Testing Sendmail Gmail Relay

To verify that the setup actually works, try to send a test mail using sendmail. For example;

echo "This is a test for sendmail gmail relay" | sendmail [email protected]

You should be able to receive a mail with a body, This is a test for sendmail gmail relay. Also check the mail logs.

That is all on how to configure Sendmail to use Gmail relay on Ubuntu 18.04/Debian 10/9.

Install Zimbra Mail Server on Fedora 30/29/CentOS 7

Encrypt Emails using Enigmail on Thunderbird

Configure Postfix to Use Gmail SMTP on Ubuntu 18.04

How to Install and Setup Roundcube Webmail on Debian 9

How to Install and Setup iRedMail Mail Server on Ubuntu 18.04 LTS

How to Install and Setup Thunderbird Mail Client on Ubuntu 18.04

6 COMMENTS

  1. Hello.
    I am on Ubuntu 18.04.
    Tried to do everything suggested by you but still get a message that authentication is required by the gmail server.
    I was wondering about the syntax of the gmail-smtp-auth file. What does the U:root stand for exactly? For I: i am using my gmail address and in P the gmail password.

    • I gave up on sendmail and tried to make it work on Postfix. I actually got the same issue there (message 530 from the gmail smtp server). After hours of digging through the information on the internet i finally solved it by adding a tls_policy. This may work for sendmail too.

LEAVE A REPLY

Please enter your comment!
Please enter your name here