DingDong
DingDong

Reputation: 75

Postfix: Mailgun not triggered within same domain

The Configs

We did the usual main.cf (postfix) relay/sasl entries:

# Amavisd + SpamAssassin + ClamAV
#
content_filter = smtp-amavis:[127.0.0.1]:10024

# Concurrency per recipient limit.
smtp-amavis_destination_recipient_limit = 1

relayhost = [smtp.mailgun.org]:587

smtp_tls_security_level = encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:[email protected]:password
smtp_sasl_security_options = noanonymous

This actually works perfectly fine, and mail deliveries are properly logged under Mailgun too.

The Problem
If we send an email within our domain, it's not triggering Mailgun. Means: if JohnDoe@ourXYZDomain.com sends an email to JaneDoe@ourXYZDomain, it is delivered via postfix. If JohnDoe@ourXYZDomain.com sends an email to JohnDoe@someOtherDomain.com, it is delivered and logged via Mailgun smtp.

The Analysis
Mails within same domain are sent and no errors are thrown. When looking into header of received email, it shows that postfix didn't even bother using Mailgun. See localhost [127.0.0.1] in line 6:

Subject:test - 00:11
Contact photo
From    [email protected]    Date    Mon 00:11
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from mail.ourXYZDomain.com (localhost [127.0.0.1])
    by mail.ourXYZDomain.com (Postfix) with ESMTP id 49KwDw97hggXdtN
    for <[email protected]>; Sun, 10 May 2020 20:11:12 +0000 (UTC)
Authentication-Results: mail.ourXYZDomain.com (amavisd-new); dkim=pass
    reason="pass (just generated, assumed good)"
    header.d=ourXYZDomain.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=
    ourXYZDomain.com; h=user-agent:message-id:subject:subject
    :to:from:from:date:date:content-transfer-encoding:content-type
    :content-type:mime-version; s=dkim; t=1589141471; x=1591733472;
    bh=WonWKNs0MVBQ4Md9bT3TQ0-----=; b=1lp9qX-----YE
    HQwrRVwjLjcPcP/jkjhgjghgfWisfODNZ5xHnQto5Xa
    D6/Wj8fAEpwiu8uG5Ujhugz778gjNZ8UhFXtJf2aK
    1B8iZembDuiIsjg6fKj6snRjA=
X-Virus-Scanned: amavisd-new at mail.ourXYZDomain.com
Received: from mail.ourXYZDomain.com ([127.0.0.1])
    by mail.ourXYZDomain.com (mail.ourXYZDomain.com [127.0.0.1]) (amavisd-new, port 10026)
    with ESMTP id xzds0121548c for <[email protected]>;
    Sun, 10 May 2020 20:11:11 +0000 (UTC)
Received: from _ (localhost [127.0.0.1])
    by mail.ourXYZDomain.com (Postfix) with ESMTPSA id 49KwDv54101252XdtL
    for <[email protected]>; Sun, 10 May 2020 20:11:11 +0000 (UTC)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII;
    format=flowed
Content-Transfer-Encoding: 7bit
Date: Mon, 11 May 2020 00:11:11 +0400
From: [email protected]
To: [email protected]
Subject: test - 00:11
Message-ID: <[email protected]>
X-Sender: [email protected]

We have no explanation for this behaviour. Maybe we missed something?

Thank you for any hint

Upvotes: 1

Views: 354

Answers (2)

Sergiy Zaschipas
Sergiy Zaschipas

Reputation: 172

When You send mail from one $mydomain virtual mailbox to another $mydomain virtual mailbox postfix will not relay it to Mailgun and transport it locally.

You need to create multiple instances of Postfix where one instance will relay all mails to Mailgun without local delivery and second instance will listen 25 port for income mail and will deliver it to virtual boxes.

Explanation of this solution You can find there: http://www.postfix.org/MULTI_INSTANCE_README.html

Upvotes: 1

Puneet Chandhok
Puneet Chandhok

Reputation: 422

Mailgun is one of many Mail Relay service mostly used to relay mails to outside networks. Mail relay is the process of transferring an email from one server to another for delivery. For example, if you work for Company A and send an email to someone at Company B, you connect to your company's SMTP server which then relays your email to the server owned by Company B.

To send mail on same network you do not need a relayhost. Mails here are deliver locally by postfix to other user's account. Local mails depend on "myorigin" "mydestination" mynetworks" settings in main.cf. The following mailhost configuration is an example which will make things clear to you.

/etc/postfix/main.cf:
       myorigin = $mydomain
       mydestination = $myhostname localhost.$mydomain localhost $mydomain
       mynetworks = 127.0.0.0/8 10.0.0.0/24

       relayhost = [smtp.mailgun.org]:587

       # Optional: forward all non-local mail to firewall
       #relayhost = [firewall.example.com]

You can find more information in following link

Postfix Standard Configuration Examples

Upvotes: 1

Related Questions