1

Currently, I'm using Redhat distro and I can send emails to Gmail server with sendmail but when I try to use Outlook server it generates the log below in maillog file. (outlook_sender@mydomain send to outlook_receiver@mydomain)

Sep  7 11:23:49 localhost sendmail[12785]: starting daemon (8.14.7): SMTP+queueing@01:00:00
Sep  7 11:23:49 localhost sm-msp-queue[12803]: starting daemon (8.14.7): queueing@01:00:00
Sep  7 11:25:14 localhost sendmail[12902]: 0874PE57012902: from=root, size=219, class=0, nrcpts=1, msgid=<202009070425.0874PE57012902@localhost.localdomain>, relay=root@localhost
Sep  7 11:25:14 localhost sendmail[12903]: 0874PELI012903: from=<root@localhost.localdomain>, size=477, class=0, nrcpts=1, msgid=<202009070425.0874PE57012902@localhost.localdomain>, proto=ESMTP, daemon=MTA, relay=localhost [127.0.0.1]
Sep  7 11:25:14 localhost sendmail[12902]: 0874PE57012902: to=outlook_receiver@mydomain, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30219, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (0874PELI012903 Message accepted for delivery)
Sep  7 11:25:14 localhost sendmail[12905]: STARTTLS=client, relay=xsp-efz.ms-acdc.office.com., version=TLSv1/SSLv3, verify=FAIL, cipher=ECDHE-RSA-AES256-GCM-SHA384, bits=256/256
Sep  7 11:25:19 localhost sendmail[12905]: 0874PELI012903: to=<outlook_receiver@mydomain>, ctladdr=<root@localhost.localdomain> (0/0), delay=00:00:05, xdelay=00:00:05, mailer=relay, pri=120477, relay=xsp-efz.ms-acdc.office.com. [40.100.29.34], dsn=5.0.0, stat=Service unavailable
Sep  7 11:25:19 localhost sendmail[12905]: 0874PELI012903: forward /root/.forward.localhost: World writable directory
Sep  7 11:25:19 localhost sendmail[12905]: 0874PELI012903: forward /root/.forward: World writable directory
Sep  7 11:25:19 localhost sendmail[12905]: 0874PELI012903: 0874PJLI012905: DSN: Service unavailable
Sep  7 11:25:19 localhost sendmail[12905]: 0874PJLI012905: to=<root@localhost.localdomain>, delay=00:00:00, xdelay=00:00:00, mailer=local, pri=31712, dsn=2.0.0, stat=Sent

Below is the configuration in sendmail.mc file:

define(`SMART_HOST', `[smtp.office365.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/auth/outlook_auth.db')dnl
MAILER(`local')dnl
MAILER(`smtp')dnl

And below is the configuration of outlook_auth file:

AuthInfo:smtp.office365.com "U:root" "I:outlook_sender@mydomain" "P:outlook_password" "M:PLAIN"

When I change the smart_host from smtp.office365.com to smtp.gmail.com, change the outlook_auth file to gmail_auth file like below, map sendmail.mc file to the sendmail.cf file then restart sendmail, it works normally.

AuthInfo:smtp.gmail.com "U:root" "I:gmail_sender@mydomain" "P:gmail_password" "M:PLAIN"

I don't know much about how the SMTP system works, just did some research and configured sendmail yesterday so if you need more information please let me know.

Below is the log in root file (/var/spool/):

Reporting-MTA: dns; localhost.localdomain
Received-From-MTA: DNS; localhost
Arrival-Date: Tue, 8 Sep 2020 09:06:09 +0700

Final-Recipient: RFC822; outlook_receiver@mydomain
Action: failed
Status: 5.7.57
Diagnostic-Code: SMTP; 530 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM [SG2PR06CA0235.apcprd06.prod.outlook.com]
Last-Attempt-Date: Tue, 8 Sep 2020 09:06:14 +0700

--08826EuC010437.1599530774/localhost.localdomain
Content-Type: message/rfc822

Return-Path: <root@localhost.localdomain>
Received: from localhost.localdomain (localhost [127.0.0.1])
    by localhost.localdomain (8.14.7/8.14.7) with ESMTP id 088268uC010433
    for <outlook_receiver@mydomain>; Tue, 8 Sep 2020 09:06:09 +0700
Received: (from root@localhost)
    by localhost.localdomain (8.14.7/8.14.7/Submit) id 088268ti010432
    for outlook_receiver@mydomain; Tue, 8 Sep 2020 09:06:08 +0700
From: root <root@localhost.localdomain>
Message-Id: <202009080206.088268ti010432@localhost.localdomain>
Date: Tue, 08 Sep 2020 09:06:08 +0700
To: outlook_receiver@mydomain
Subject: test subject
User-Agent: Heirloom mailx 12.5 7/5/10
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

test content.

--08826EuC010437.1599530774/localhost.localdomain--
UglyPrince
  • 11
  • 3
  • Office 365 rejected the mail, but didn't really say why. The bounce message might have more information. You should check it. – Michael Hampton Sep 08 '20 at 01:43
  • @MichaelHampton can you please explain more details on how to check the bounce message that you mentioned? Is it checkable after running some code or is it generated to another file not the maillog file? – UglyPrince Sep 08 '20 at 02:09
  • The log you posted says the bounce message was delivered to the local root user, which is apparently the same account which sent the original message. You can read it there. – Michael Hampton Sep 08 '20 at 02:33
  • @MichaelHampton I thinks it is the line "Diagnostic-Code: SMTP; 530 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM [SG2PR06CA0235.apcprd06.prod.outlook.com]" that makes sendmail cannot send to Outlook. I have edited the post with the log in /var/spool/root file. Do you have any idea how can I fix this? – UglyPrince Sep 08 '20 at 03:08
  • Configure authentication. – Michael Hampton Sep 08 '20 at 03:23
  • Maybe the article about the basic configurations for **sendmail** is helpful for you to configure a mailflow between Redhat and Outlook: https://www.brennan.id.au/12-Sendmail_Server.html – Ivan_Wang Sep 09 '20 at 07:27
  • @Ivan_Wang Thank you, but I still face the same problem with authentication after making some change as your article. – UglyPrince Sep 10 '20 at 09:13

1 Answers1

2

First, you need to add Partner Connector in the Office365 Exchange Admin center. Then add your server IP address there.

Now in your SendMail MTA Configuration add this

define(`SMART_HOST',`[MX-OF-YOUR-OFFICE365-DOMAIN]')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 25')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 25')dnl
define(`confAUTH_OPTIONS', `A p')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo', `hash -o /etc/mail/authinfo.db')dnl

Make sure you replace MX-OF-YOUR-OFFICE365-DOMAIN using your domain Office365 MX.

If you like to use Office365 Auth Client, follow this.

Update Access with Office365 SMTP User ID Pass

sudo nano /etc/mail/authinfo/office365-auth
AuthInfo: "U:root" "I:sender@domain.tld" "P:YOUR-PASSWORD"

Generate hash file using Auth File

sudo makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo/office365-auth

Regenerate DB File sudo makemap hash /etc/mail/access.db < /etc/mail/access

After that issue

make -C /etc/mail
/etc/init.d/sendmail reload

Try to send mail afterward.

Aman Juman
  • 304
  • 2
  • 6