我有一个 postfix/amavis 中继服务器,域名为 mail.example.com。它将成为数十个 VPS 的中继,这些 VPS 将具有像 hostname.example.net 这样的域。
所以我实际上有两个问题。是否可以使用 dkim 通过中继服务器上的 postfix 中继对源自 VPS 的邮件进行签名?或者让邮件在它们实际来自的 VPS 上签名?
像这样的 amavis 配置可以吗?
# DKIM key
dkim_key('example.com', 'dkim', '/var/dkim/DKIMkey.pem');
# Cover subdomains in @dkim_signature_options_bysender_maps= ():
@dkim_signature_options_bysender_maps = ( {
# Cover subdomains example.net.
'.example.net' => { d => 'example.com' },
});
Run Code Online (Sandbox Code Playgroud)
还是我误解了整个概念?如果子域通过中继服务器,我什至需要签署子域,还是只签署中继服务器域就足够了?
# host 1.2.3.4
4.3.2.1.in-addr.arpa domain name pointer mail.domain.vn.
# dig +short txt domain.vn
"v=spf1 a mx ptr -all"
# dig +short txt mail.domain.vn
"v=spf1 a -all"
Run Code Online (Sandbox Code Playgroud)
这是一个标记为垃圾邮件的电子邮件标题:
Delivered-To: x@gmail.com
Received: by 10.223.30.6 with SMTP id s6csp119326fac;
Sat, 19 May 2012 22:16:56 -0700 (PDT)
Received: by 10.68.218.72 with SMTP id pe8mr55329860pbc.45.1337491015749;
Sat, 19 May 2012 22:16:55 -0700 (PDT)
Return-Path: <anonymous@domain.vn>
Received: from mail.domain.vn (mail.domain.vn. [1.2.3.4])
by mx.google.com with ESMTP id on9si20572118pbc.80.2012.05.19.22.16.53;
Sat, 19 May 2012 22:16:54 -0700 (PDT)
Received-SPF: pass (google.com: …Run Code Online (Sandbox Code Playgroud) 我使用这个实用程序来创建我的 DKIM 密钥(1024 位大小),因为 Gmail 一直在阻止我们(我们有一个旧的 joomla 安装被利用,在我之前)。我得到了这个:
Your Selector Record:
default._domainkey.example.com IN TXT
"k=rsa;p=REALLYLONGSTRINGXXXXXXX"
Your Policy Record:
_domainkey.example.com IN TXT "o=~"
Run Code Online (Sandbox Code Playgroud)
但是,MediaTemple 的 Plesk 给我的 DomainKey 有o=-,所以我将其用于策略记录。
这可以吗?
我按照这些说明使用 Postfix 设置 OpenDKIM,并且它的工作原理与宣传的一样。我的外发邮件添加了 DKIM-Signature 标头,例如:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=example.com; s=mail;
t=1398638300; bh=mk/7yYUxFCWz+ZHB0opJIA/S3J5ELoPZPfAO0KQdVg4=;
h=Date:From:To:Subject:From;
b=fPPfUliJUgA0re38nkJ2R18TeFgbamOv1U8nDb9958eTeAT6Mp7oq4WGrHPiPmc+b
mrLu9RuW0/S4d0ipkilNZDxgecwl7qttrDbTEkWxdhwwTSe5FL3OBaUoUxJFrMGjmY
RdBjY5ZWtvk29+gXZ+af5Of9OrY7COLlqGkFXRXw=
Run Code Online (Sandbox Code Playgroud)
我的问题是关于d=上面的参数。在一台邮件服务器处理多个虚拟域的外发邮件的情况下,d= 是否应该包含发送邮件的邮件服务器?还是应该是出现在 From: 地址中的域?
我曾尝试阅读有关此主题的RFC 6376,但我发现的唯一相关内容是:
d= The SDID claiming responsibility for an introduction of a message
into the mail stream [...] The conventions and semantics used by a Signer to
create and use a specific SDID are outside the scope of this specification
Run Code Online (Sandbox Code Playgroud)
我希望这里有人知道如何在实践中使用 d= 参数。
我正在我们的域上设置电子邮件身份验证,以允许使用我们的电子邮件服务提供商进行身份验证。
我的理解是 DNS 记录需要有任何; 转义,例如,\;
我只想确保 ALL ; 应该逃脱。为此,我想确保我理解为什么需要转义。即,如果是 b/c ;有特别的含义,然后我怎么知道什么时候应该不被转义,而是它应该有它的特殊意义?或者它在 DNS TXT 记录中具有特殊(和不同)的含义,一般来说,对于 DKIM 设置的特殊用途,我们不希望它具有那种特殊含义(也许阅读记录的人会应用该值)
此外,ESP 告诉我 DNS 正在“出于某种原因添加 \”(等待确认他们是否只是不理解。
我们正在尝试在我们的 Google Apps/G Suite for Business 域上设置 DKIM 身份验证,以减少最终出现在人们垃圾邮件文件夹中的电子邮件数量。我们已经生成了 DKIM 密钥并在 Google Cloud DNS 中进行了设置,并确认它是使用 3 种不同的 DKIM 工具进行设置的:
他们都说它是有效的,但是当我们尝试开始身份验证时,它说“电子邮件身份验证未通过验证......”我们等待了建议的 48 小时(尽管 DNS 记录在 24 小时前可见且正确),但它仍然不会认证。
知道还有什么问题吗?
safedoorpm.com如果您想自己检查DNS,则该域是。
这是从我们的域发送到 gmail 的邮件的标题。请注意,它仍然使用gappssmtpDKIM的默认域,而不是我们的:
Delivered-To: XXXX@gmail.com
Received: by 10.79.95.130 with SMTP id t124csp1047440ivb;
Thu, 20 Oct 2016 14:30:12 -0700 (PDT)
X-Received: by 10.37.231.193 with SMTP id e184mr4430151ybh.13.1476999012850;
Thu, 20 Oct 2016 14:30:12 -0700 (PDT)
Return-Path: <XXXX@safedoorpm.com>
Received: from mail-yw0-f176.google.com (mail-yw0-f176.google.com. [209.85.161.176])
by mx.google.com …Run Code Online (Sandbox Code Playgroud) 从我们的内部电子邮件服务器发送到公共服务器(例如 Gmail、雅虎和所有其他外部组织)的邮件会发送到垃圾邮件。我们目前使用的是exchange server,为了解决上述问题,我们想在exchange server 2016上配置DKIM。请说明DKIM的配置说明。如果可能的话,有什么方法可以解决这个问题。
感谢您的时间,
此致。
如果电子邮件在转发时包含多个 DKIM 签名,DMARC 如何处理 DKIM 对齐检查?
任何传递 DKIM 签名 d= 参数都必须匹配 Header From 吗?
或者
第一个(或最后一个)DKIM 签名 d= 参数是否必须与 Header From 匹配?
或者
“身份验证结果”中指示的单个 DKIM 是否必须通过(可能总是最后一个?)?
这不是放松与严格的问题。
谢谢!
因此,如果我正确理解 DKIM,它基本上是一种公钥/私钥类型的服务。但是,如果您从多个服务器/来源发送电子邮件,这如何工作?例如,我有一个拆分域,我从托管的 Exchange 服务器发送一些电子邮件(在同一域下),一些从 cPanel 共享托管帐户发送。最重要的是,我允许第三方(计费服务、营销电子邮件服务等)发送一些电子邮件,以便他们可以使用我的域发送。更糟糕的是,其中一些服务甚至不提供 DKIM 支持。我的 SPF 记录是正确的,但我也想让 DKIM 正常工作(因为 Google 现在将我的很多电子邮件标记为垃圾邮件,显然您需要启用 DKIM 才能让事情在他们结束时开始顺利进行)。任何帮助是极大的赞赏。谢谢!
PS 如果我能够在我使用的某些服务器上启用 DKIM,这样做会导致发送没有 DKIM 签名的电子邮件被标记吗?例如,入站电子邮件服务器是否总是会在我的域中查询 DKIM 公钥,然后如果他们在标题中找不到 DKIM 签名,则该电子邮件可能会被标记或丢弃?
我有一个点名域。。名称是一个奇怪的TLD:他们最初只提供第三级域名,如first.last.name,让更多的人可以得到自己的名字。他们还包括每个域注册的 first@last.name 电子邮件地址。后来他们开放了正常的二级注册,例如last.name,但仅适用于没有现有三级注册的域。我在那之前得到了我的,所以我坚持下去。
我已经使用 first@last.name 作为我的主要电子邮件地址 18 年左右。但是,我不拥有 last.name 本身,因此我必须依靠我的域注册商(以及 Verisign,.name 注册运营商)将收到的电子邮件转发给我。更重要的是,外发电子邮件的电子邮件传送能力已经下降得几乎无法使用。只有 Verisign 拥有 last.name 的 DNS,而且他们显然没有兴趣为其操作SPF、DKIM、DMARC或 SMTP。注册商自己不能,因为他们无法控制 last.name 的 DNS。
我被卡住了吗?我是否需要咬紧牙关,放弃我一直使用的这个电子邮件地址,并切换到一个我可以控制的 DNS 的“普通”域?我错过了什么吗?
例如,Gmail 用户会在我的电子邮件中看到这一点: