后缀:Mailgun 未在同一域内触发
Postfix: Mailgun not triggered within same domain
配置
我们做了通常的 main.cf(后缀)relay/sasl 条目:
# 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:login@domain.com:password
smtp_sasl_security_options = noanonymous
这实际上工作得很好,邮件发送也正确地记录在 Mailgun 下。
问题
如果我们在我们的域内发送电子邮件,则不会触发 Mailgun。意思是:如果 JohnDoe@ourXYZDomain.com 向 JaneDoe@ourXYZDomain 发送电子邮件,它是通过后缀传递的。如果 JohnDoe@ourXYZDomain.com 向 JohnDoe@someOtherDomain.com 发送电子邮件,它会通过 Mailgun smtp.
传送和记录
分析
发送同一域内的邮件并且不会抛出任何错误。当查看收到的电子邮件 header 时,它表明 postfix 甚至懒得使用 Mailgun。请参阅第 6 行中的 localhost [127.0.0.1]:
Subject:test - 00:11
Contact photo
From johndoe@ourXYZDomain.com Date Mon 00:11
Return-Path: <johndoe@ourXYZDomain.com>
Delivered-To: janedoe@ourXYZDomain.com
Received: from mail.ourXYZDomain.com (localhost [127.0.0.1])
by mail.ourXYZDomain.com (Postfix) with ESMTP id 49KwDw97hggXdtN
for <janedoe@ourXYZDomain.com>; 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 <janedoe@ourXYZDomain.com>;
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 <janedoe@ourXYZDomain.com>; 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: johndoe@ourXYZDomain.com
To: janedoe@ourXYZDomain.com
Subject: test - 00:11
Message-ID: <1003f6125a2ff654101214@ourXYZDomain.com>
X-Sender: johndoe@ourXYZDomain.com
我们无法解释这种行为。也许我们错过了什么?
感谢您的任何提示
Mailgun 是众多 邮件中继服务 之一,主要用于将邮件中继到外部网络。邮件中继是将电子邮件从一台服务器传输到另一台服务器以进行传递的过程。例如,如果您在 A 公司工作并向 B 公司的某个人发送电子邮件,您将连接到您公司的 SMTP 服务器,然后该服务器将您的电子邮件中继到 B 公司拥有的服务器。
要在同一网络上发送邮件,您不需要中继主机。这里的邮件通过 postfix 在本地发送到其他用户的帐户。本地邮件依赖于 "myorigin" "mydestination" mynetworks" 设置 main.cf。下面的邮件主机配置是一个例子,它将使事情对你来说很清楚。
/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]
您可以在以下内容中找到更多信息link
当您将邮件从一个 $mydomain 虚拟邮箱发送到另一个 $mydomain 虚拟邮箱时,postfix 不会将邮件中继到 Mailgun 并在本地传输。
您需要创建多个 Postfix 实例,其中一个实例会将所有邮件中继到 Mailgun 而无需本地投递,第二个实例将侦听 25 端口以接收收入邮件并将其投递到虚拟邮箱。
这个解决方案的解释你可以在那里找到:http://www.postfix.org/MULTI_INSTANCE_README.html
配置
我们做了通常的 main.cf(后缀)relay/sasl 条目:
# 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:login@domain.com:password
smtp_sasl_security_options = noanonymous
这实际上工作得很好,邮件发送也正确地记录在 Mailgun 下。
问题
如果我们在我们的域内发送电子邮件,则不会触发 Mailgun。意思是:如果 JohnDoe@ourXYZDomain.com 向 JaneDoe@ourXYZDomain 发送电子邮件,它是通过后缀传递的。如果 JohnDoe@ourXYZDomain.com 向 JohnDoe@someOtherDomain.com 发送电子邮件,它会通过 Mailgun smtp.
分析
发送同一域内的邮件并且不会抛出任何错误。当查看收到的电子邮件 header 时,它表明 postfix 甚至懒得使用 Mailgun。请参阅第 6 行中的 localhost [127.0.0.1]:
Subject:test - 00:11
Contact photo
From johndoe@ourXYZDomain.com Date Mon 00:11
Return-Path: <johndoe@ourXYZDomain.com>
Delivered-To: janedoe@ourXYZDomain.com
Received: from mail.ourXYZDomain.com (localhost [127.0.0.1])
by mail.ourXYZDomain.com (Postfix) with ESMTP id 49KwDw97hggXdtN
for <janedoe@ourXYZDomain.com>; 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 <janedoe@ourXYZDomain.com>;
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 <janedoe@ourXYZDomain.com>; 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: johndoe@ourXYZDomain.com
To: janedoe@ourXYZDomain.com
Subject: test - 00:11
Message-ID: <1003f6125a2ff654101214@ourXYZDomain.com>
X-Sender: johndoe@ourXYZDomain.com
我们无法解释这种行为。也许我们错过了什么?
感谢您的任何提示
Mailgun 是众多 邮件中继服务 之一,主要用于将邮件中继到外部网络。邮件中继是将电子邮件从一台服务器传输到另一台服务器以进行传递的过程。例如,如果您在 A 公司工作并向 B 公司的某个人发送电子邮件,您将连接到您公司的 SMTP 服务器,然后该服务器将您的电子邮件中继到 B 公司拥有的服务器。
要在同一网络上发送邮件,您不需要中继主机。这里的邮件通过 postfix 在本地发送到其他用户的帐户。本地邮件依赖于 "myorigin" "mydestination" mynetworks" 设置 main.cf。下面的邮件主机配置是一个例子,它将使事情对你来说很清楚。
/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]
您可以在以下内容中找到更多信息link
当您将邮件从一个 $mydomain 虚拟邮箱发送到另一个 $mydomain 虚拟邮箱时,postfix 不会将邮件中继到 Mailgun 并在本地传输。
您需要创建多个 Postfix 实例,其中一个实例会将所有邮件中继到 Mailgun 而无需本地投递,第二个实例将侦听 25 端口以接收收入邮件并将其投递到虚拟邮箱。
这个解决方案的解释你可以在那里找到:http://www.postfix.org/MULTI_INSTANCE_README.html