标签: dkim

打击垃圾邮件 - 作为电子邮件管理员、域所有者或用户,我可以做什么?

这是一个关于打击垃圾邮件的规范问题
还相关:

关于打击垃圾邮件有很多技巧和很多知识。管理员、域所有者和最终用户可以使用哪些广泛使用的技术和技术来帮助将垃圾排除在收件箱之外?

我们正在寻找从不同角度涵盖不同技术的答案。接受的答案应包括各种技术(例如 SPF/SenderID、DomainKeys/DKIM、灰名单、DNS RBL、信誉服务、过滤软件 [SpamAssassin 等]);最佳实践(例如,绝不允许中继端口 25 上的邮件,应使用端口 587;等等)、术语(例如,开放中继、反向散射、MSA/MTA/MUA、垃圾邮件/火腿)以及其他可能的技术。

email spam spf dkim

110
推荐指数
6
解决办法
6万
查看次数

成为小型邮件提供商是否变得不可能?

我为我的私人电子邮件,一些有网站的朋友和两个非政府组织经营一个小型邮件服务器。我的服务器每天总共发送 60 到 400 条消息。现在很多这些电子邮件是私人邮件,在两个或更多彼此认识的人之间。偶尔(通常每周一两次)会有一封邮件发送给一个非政府组织的“成员”,通知他们有什么新消息等。

现在我已经将“群发邮件”(大约 100 个收件人,所有人都认识并通过纸质表格手动订阅)转移到 mailgun.org。

我仍然收到(而且越来越多)被拒绝的消息。尤其是像 Gmail、Yahoo 或 Microsoft(hotmail、live.com 等)这样的大型电子邮件提供商只是决定以 550 拒绝或将个人邮件发送到收件人的垃圾邮件文件夹。有时会发生这种情况:

  • gmail 用户向我系统上的用户发送电子邮件
  • 我系统上的用户回复
  • 回复被拒绝或发送到垃圾邮件

我做过的事情:

  • 设置 DKIM(所有外发电子邮件的每个域签名)
  • 设置SPF,域通常有~all,一些-all
  • 我的邮件服务器 IP 有正确的 PTR
  • 显然没有开放中继,用户只能通过身份验证后从自己的电子邮件地址发送
  • 我为大多数域制定了 DMARC 政策
  • 我将传出消息的速率限制为每分钟 1 条邮件服务器
  • 邮件测试服务报告上述所有项目的“完美”分数(全部通过)
  • 我经常使用http://www.dnsbl.info检查我的 IP 是否被列入黑名单——它总是全绿

现在矛盾来了:对于大多数大型邮件提供商,有一种注册方法可以监控拒绝率和 IP 声誉:

我不归类为批量发件人,因为数量很少。所以我确实注册以监控我的声誉和拒绝率,但因为我发送批量电子邮件,所以没有报告。

我还能做些什么来提高邮件投递率?或者我应该放弃并停止尝试操作我自己的邮件服务器?

如果相关:我使用 postfix 并且对传入邮件有非常严格的规则(即没有未知的域/主机名或无效的 SPF 记录,我使用 spamassassin 等)

更新

这是一个例子,从我发送给我的姻亲,它到达了他们的垃圾邮件文件夹:http : //pastebin.com/BC6YgjpQ(我用 替换了发送地址域example.com和接收者地址example@gmail.com

既然问题出现了:与 …

email email-server spam spf dkim

42
推荐指数
3
解决办法
2450
查看次数

DKIM 签署来自任何域的外发邮件(使用 Postfix 和 Ubuntu)

我在我的邮件服务器(postfix 和 ubuntu)上安装了 DKIM,所以它对传出的电子邮件进行了签名。我使用了这些说明:https : //help.ubuntu.com/community/Postfix/DKIM

但是,我需要它来签署来自任何域(在发件人地址中)的电子邮件,而不仅仅是我自己的。我正在构建一个电子邮件通讯服务,客户将通过服务器发送他们自己的电子邮件。

首先我在 /etc/dkim-filter.conf 中设置“域 *”。这使它在所有外发电子邮件中包含 DKIM 标头,无论域是什么。

但是,gmail 上的验证检查失败,因为它正在检查发件人地址中的域,而不是我的域(和 dns 记录)。有谁知道如何做到这一点?

postfix dkim

40
推荐指数
2
解决办法
3万
查看次数

查找 DKIM 和 DMARC 记录?

是否有使用dig或查找域的 DKIM 和 DMARC 记录的方法nslookup

我尝试执行以下操作:

dig somedomain.org any
Run Code Online (Sandbox Code Playgroud)

返回许多记录,但不返回已知的 DKIM 和 DMARC 文本记录。

nslookup -type=txt somedomain.org
Run Code Online (Sandbox Code Playgroud)

返回除 DKIM 和 DMARC 记录之外的所有已知文本记录。

domain-name-system dkim dmarc

38
推荐指数
3
解决办法
6万
查看次数

从从 Amazon SES 发送到 Gmail 的电子邮件中删除“via”

从 Amazon SES 发送电子邮件时,gmail 显示“通过 amazonses.com 发送”。我如何删除它?

据谷歌称,

我是发件人,我不希望我的收件人看到“通过”链接。我能做什么?Gmail 会检查电子邮件是否通过了正确的身份验证。如果您的邮件是由批量邮件供应商或第三方附属机构发送的,请发布 SPF 记录 2,其中包括发送您的邮件的供应商或附属机构的 IP,并使用与您的域相关联的 DKIM3 签名对您的邮件进行签名。

我已经添加了 SPF 和 DKIM 记录。查看原始电子邮件时,它显示两者都通过了。

Received-SPF: pass
Authentication-Results: mx.google.com; spf=通过...; dkim=通过...

有任何想法吗?

domain-name-system gmail spf dkim amazon-ses

33
推荐指数
2
解决办法
3万
查看次数

SPF 与 DKIM - 确切的用例和差异

我很抱歉这个模糊的标题。我不完全明白为什么 SPF 和 DKIM 应该一起使用。

第一:如果发件人或 DNS 被“欺骗”,SPF 可以通过它应该失败的地方,如果涉及代理和转发器的一些高级设置,它可能会在应该通过的地方失败。

DKIM 可以通过它应该失败的地方,要么是因为密码学中的错误/弱点(我们排除了这一点,因此简化点),要么因为 DNS 查询被欺骗。

由于排除了密码学错误,不同之处(如我所见)在于 DKIM 可用于 SPF 失败的设置。我想不出任何可以从两者中受益的例子。如果设置允许 SPF,则 DIKM 不应添加任何额外的验证。

任何人都可以举一个使用两者的好处的例子吗?

email spf dkim

26
推荐指数
2
解决办法
2万
查看次数

如何在 DNS 中输入强(长)DKIM 密钥?

我试图在 DNS 中输入一个 4028 位的 DKIM 密钥,似乎我超出了 UDP 512 字节限制和 TXT 记录的最大记录大小。

有人如何正确创建大密钥(隐含更大的编码大小)并将其导入 DNS?

domain-name-system email dkim domainkeys

22
推荐指数
1
解决办法
5万
查看次数

仅靠 DKIM 不能解决垃圾邮件问题吗?为什么我需要SPF?

最终编辑:我对 DKIM 的看法似乎完全错误,签名域不必与发件人域相同,因此我的问题的整个前提是有缺陷的。非常感谢保罗指出我的错误!

原问题如下:

我曾尝试阅读 SPF 和 DKIM,但我不明白同时使用两者的意义,至少在打击垃圾邮件的背景下(伪造的发件人地址,这可能导致我的电子邮件服务器/域被列入黑名单)。据我所知,只有 DKIM 才能完成 SPF 应该完成的工作。

到目前为止,我的理解如下:

  1. 发送电子邮件时,发件人可以声明他们想要的任何内容(例如伪造的发件人地址)
  2. DKIM 允许检测伪造的发件人电子邮件地址,因为您可以根据 DNS TXT 记录中的公钥验证 DKIM 签名。
  3. SPF 允许您验证电子邮件是否来自有权为给定发件人地址发送电子邮件的邮件服务器。

我不明白的是:除非 DKIM 私钥以某种方式被泄露,否则仅 DKIM 验证就足以验证电子邮件是从授权的电子邮件服务器发送的,否则电子邮件服务器将无法用于签署电子邮件的私钥。

我在这里看到了一个非常相似的问题的答案:https : //serverfault.com/a/780248/154775,作者在其中声称 DKIM 无法防止重放攻击。我承认这一点,但我发现这是一个非常极端的案例,我认为迄今为止最大的问题是带有虚假发件人地址的垃圾邮件 - DKIM 应该很容易地防止这种情况发生。

与仅 DKIM 相比,是否存在重放攻击之外的场景,其中 SPF 提供额外保护?

编辑:我用粗体标记了我的问题的核心,以澄清我到底想要什么答案。

security email spam spf dkim

21
推荐指数
4
解决办法
3383
查看次数

DNS 查询中未显示域密钥

*已解决 - 请参阅这篇文章的底部 *

所以这里的问题是我几天来一直在尝试设置域密钥。我过去成功地做到了,但这次我无法让它发挥作用。

现在,我目前遇到的问题是,当我尝试在 DNS 记录中查找域密钥时,什么也没有出现。例如,当我去 protodave 并在我的域中搜索我的选择器(默认)时,我得到的是:

 DNS QUERY: default._domainkey.palabama.com
 QUERY STATUS: No DNS TXT Record found
 TXT RECORD:
Run Code Online (Sandbox Code Playgroud)

当我尝试挖掘记录时,我没有得到答案部分。
当我去 DKIMcore 时,我得到以下信息:

 This is not a good DKIM key record. You should fix the errors shown in red.
 DNS query failed for 'default._domainkey.palabama.com':NOERROR
 A public-key (p=) is required
Run Code Online (Sandbox Code Playgroud)

事情是,我已经在我的注册商的 DNS 上设置了 DK,这是分配的 dns (namecheap)。

经过几次不同的尝试,这是我在 namecheap 上的设置

 default._domainkey.mail.palabama.com.   TXT  v=DKIM1; g=*; k=rsa;      p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0kOjYjN2gAfTuQgsyS/rGUcMbZ3zg5Pf5pHyN735OufSnkLbpYgnDJcIyQTjhbeGBPoPwlvL1fOa1/TOsp2vT9fFIFtgGXg8yVpSKrttdOCX7a3CYkQIO4WQU+2MAzT+Z3IBroTBDmjS61fhRSyoUlPBhUYTECodVu3GENkoLUQIDAQAB

 default._domainkey.palabama.com.   TXT  v=DKIM1; g=*; k=rsa;      p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0kOjYjN2gAfTuQgsyS/rGUcMbZ3zg5Pf5pHyN735OufSnkLbpYgnDJcIyQTjhbeGBPoPwlvL1fOa1/TOsp2vT9fFIFtgGXg8yVpSKrttdOCX7a3CYkQIO4WQU+2MAzT+Z3IBroTBDmjS61fhRSyoUlPBhUYTECodVu3GENkoLUQIDAQAB
Run Code Online (Sandbox Code Playgroud)

我扔了那个mail.palabama.com。记录在想也许,因为我的 MX 记录设置为 mail.palabama.com。它会有所帮助,最初该行不在 DNS 中,并且没有任何改变。

当我在 …

domain-name-system dkim

17
推荐指数
2
解决办法
3万
查看次数

Gmail 的 SPF/DKIM/DMARC 通过外部域上的 smtp.gmail.com“发送邮件”

由于“Google Apps”/“Google Apps for Business ”/“G-Suite”/“Google Workspaces”免费套餐已停止,我需要一个解决方案来将我的约 30 口大家庭迁移到可持续的解决方案。

我正在考虑让他们每个人都背负一个他们应该创建的个人@gmail.com地址,转发电子邮件,并使用gmail中的“发送邮件为”添加地址,使用谷歌的gmail SMTP服务器和应用程序专用密码: 在此输入图像描述

我使用 CloudFlare 作为 DNS,并且激活了CloudFlare 电子邮件路由(测试版)功能,并将 MX 记录设置为各个.mx.cloudflare.net服务器。我还添加了 CloudFlare SPF TXT 记录:v=spf1 include:_spf.mx.cloudflare.net ~all

现在,这一切似乎都在起作用,除了所发生的情况是发送的电子邮件似乎经常以垃圾邮件告终。我想这可能与 SPF/DKIM/DMARC 有关,但这超出了我的知识范围。

我已经按照我在其他地方看到的建议将 SPF 标头从 修改v=spf1 include:_spf.mx.cloudflare.net ~allv=spf1 include:_spf.mx.cloudflare.net include:_spf.google.com ~all,但这似乎并没有解决问题。

是否可以添加 DKIM 和/或 DMARC 记录?如果可以,如何添加?我(有限)的理解是,Google 需要给我一个要添加的密钥(可能是我的帐户唯一的),这验证了不仅是 Google/gmail 发送了邮件,而且是,而不是其他随机的 gmail 用户。

此外,这将如何与其他用户合作?我需要所有用户都能够可靠地发送/接收电子邮件,而不是让它们最终成为垃圾邮件/垃圾邮件。

如果这像 SSH,我将生成一个密钥对,将公钥放在 DNS 上,每个用户将在其 gmail 设置的“发送为”中的某处添加相同的私钥。

我想这可能与电子邮件进入垃圾邮件/垃圾邮件无关,但我添加了 _dmarc TXT 记录:v=DMARC1; p=none; rua=mailto:{{me@gmail.com}}; ruf=mailto:{{me@gmail.com}}; sp=none; fo=1; ri=86400

email gmail spf dkim dmarc

16
推荐指数
1
解决办法
7139
查看次数