我试图在 DNS 中输入一个 4028 位的 DKIM 密钥,似乎我超出了 UDP 512 字节限制和 TXT 记录的最大记录大小。
有人如何正确创建大密钥(隐含更大的编码大小)并将其导入 DNS?
我已经尝试通过添加 SPF 和 DKIM 记录来提高我的电子邮件的安全性(并防止它们被标记为垃圾邮件)。所以我创建了它们,并使用 check-auth@port25.com 测试了结果。这是结果:
==========================================================
Summary of Results
==========================================================
SPF check: pass
DomainKeys check: neutral
DKIM check: pass
Sender-ID check: pass
SpamAssassin check: ham
Run Code Online (Sandbox Code Playgroud)
所以,除了DomainKeys之外,一切都过去了。详细报告如下:
----------------------------------------------------------
DomainKeys check details:
----------------------------------------------------------
Result: neutral (message not signed)
ID(s) verified: header.From=myemail@mydomain.com
DNS record(s):
Run Code Online (Sandbox Code Playgroud)
然后我尝试添加_domainkey.mydomain.com带有内容的 TXT 记录t=y; o=~并再次检查,但结果是相同的(DNS 已经传播,因为我从 mxtoolbox 检查了 DNS 记录并得到了它)。
我该怎么做才能解决这个问题?
我在我的 SMTP 服务器上为我的域和 DKIM 消息签名配置了硬故障 SPF。由于这是唯一应该用于从我的域发出邮件的 SMTP 服务器,因此我没有预见到任何复杂情况。
但是,请考虑以下情况:我通过我的 SMTP 服务器向我同事的大学电子邮件发送了一封电子邮件。问题是我的同事将他的大学电子邮件转发到他的 GMail 帐户。这些是邮件到达他的 GMail 邮箱后的标题:
Received-SPF: fail (google.com: domain of me@example.com 没有指定 192.168.128.100 作为允许的发件人) client-ip=192.168.128.100; 身份验证结果:mx.google.com;spf=hardfail(google.com:me@example.com 的域未将 192.168.128.100 指定为允许的发件人)smtp.mail=me@example.com;dkim=hardfail(测试模式)header.i=@example.com
(标题已被清理以保护非 Google 方的域和 IP 地址)
GMail 根据我的 SPF 和 DKIM 记录检查传送链中的最后一个 SMTP 服务器(理所当然)。由于交付链中的最后一个 STMP 服务器是大学的服务器而不是我的服务器,因此检查会导致 SPF 硬故障和 DKIM 故障。幸运的是,GMail 没有将邮件标记为垃圾邮件,但我担心这可能会在将来引起问题。
我对 SPF hardfail 的实施可能太严格了吗?我应该注意的任何其他建议或潜在问题?或者也许有更理想的大学电子邮件转发程序的配置?我知道转发服务器可能会更改信封发件人,但我看到这变得很混乱。
我已经在我的邮件服务器上配置了 DKIM (milter-dkim)。从我的域发送的传入电子邮件现在包含以下标题:
X-DKIM: Sendmail DKIM Filter v2.8.3 MYDOMAIN.com o7FLH1Wa032083
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mydomain.com; s=mail;
t=1281907022; bh=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN/XKdLCPjaYaY=;
h=Message-ID:Date:Subject:From:To:MIME-Version:Content-Type:
Content-Transfer-Encoding;
b=qetPkilXBdjnuqiKIyvAwsvTvJfAnq5urdgp/i7p/uLJ8DB+svy9A8C6CPmcfELsJ
hDid5k2AN5JD+wM2INmUIgjeAa/IwpGTbuMloj0Wioh4njqIfbATJqOhuqxTjic
Run Code Online (Sandbox Code Playgroud)
1.) 所以我想这证实了我正确设置了 DKIM,对吗?
但是当我查看来自 Google 的消息时,我看到:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=gamma;
...snip...
DomainKey-Signature: a=rsa-sha1; c=nofws;
d=gmail.com; s=gamma;
...snip...
Run Code Online (Sandbox Code Playgroud)
2.) DomainKey-Signature 与 DKIM-Signature 的关系是什么?
阅读了Jeff 关于 Email 和 DKIM 的博客文章后,我认为对来自 Exchange 2003 服务器的所有邮件进行DKIM 处理可能会很好。有什么好办法呢?
我正在创建一个带有主名称服务器和多个域的服务器。我是否需要为所有域制作 TXT 记录,它们都有自己的电子邮件,但使用主服务器的邮件服务器。
编辑:
我目前在运行 CentOS 和 Plesk 的服务器上。我可以选择的一种选择是使用域密钥”
如果我启用域密钥,则会创建 2 个 TXT 字段,一个是长密钥,一个是 ao=- 值。
如果我启用此功能,我仍然需要拥有 SPF 记录,或者就垃圾邮件而言,这是否不如 SPF 记录。
最近我们设置了一个新的 SMTP 服务器来向我们的注册用户发送时事通讯和促销邮件。每周将有 5000 名用户收到时事通讯。当我们第一次尝试发送促销邮件时,我们收到了退回的邮件。我们还设置了 SPF 记录和域密钥。但是我们无法理解雅虎阻止电子邮件的原因。您能否建议银行和其他大型网站如何毫无问题地发送电子邮件?
这是雅虎发送的退回邮件的内容。
无法将邮件传递给以下收件人:
失败的收件人:email@domain.com 原因:远程主机说:421 4.7.0 [TS01] 由于用户投诉,来自 xx.xx.xx.xx 的消息暂时延迟 - 4.16.55.1;见http://postmaster.yahoo.com/421-ts01.html
在我们使用新的 SMTP 服务之前,我们曾经将这项工作外包给第三方电子邮件营销人员,并且当时我们没有配置 SPF 或域密钥。但它成功了。他们实际上遵循哪种方式?
我使用这个实用程序来创建我的 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=-,所以我将其用于策略记录。
这可以吗?
我注意到每次我设置谷歌应用程序、mailgun、mandrill 或其他任何东西时,我总是必须设置域密钥。这部分是有道理的——RSA、公共/私人等——我明白了。
直觉上,我认为在何处查找 SMTP 域密钥有一个单一的标准,但似乎这些前缀之一是随机选择的:smtp k1 mx pic mailo.
例子:
smtp._domainkey.example.com (说得通)mx._domainkey.example.net (是的)mailo._domainkey.example.org (为什么是 o?)k1._domainkey.foo.com (k 代表关键?1 代表主要?)pic._domainkey.bar.com (图片?那是什么意思?)所以我正在查看我的域列表,似乎只有这 5 个变体出现,但我没有看到任何模式。
如果你手头有一些阅读材料以及一些简短而甜蜜的解释,我很乐意被指出。
PS 我试过用谷歌搜索一下,但我知道的不够多,无法弄清楚我的查询应该是什么。我所看到的只是技术支持如何为特定电子邮件或托管服务提供商撰写文章。
我目前正在尝试在 Amazon 的 SES 上验证我的域并运行一个谷歌搜索没有帮助我更接近解决的问题。
根据 SES,我必须在我的 DNS 中为我尝试验证的域创建一个 TXT 记录。亚马逊为您提供以下信息(出于安全目的更改了值);
TYPE: TXT
NAME: _amazonses.somedomain.com
VALUE: M2sXTycXkgZXXuMuWI8TczngaPIDDMToPefzGhZ3uYA=
Run Code Online (Sandbox Code Playgroud)
我在我的注册商的 DNS 管理器中尝试了许多条目,但 SES 仍然无法找到它正在寻找的内容。我不是 DNS 专家,因此,我试图从非常稀疏的示例中构建 TXT 记录,充其量是为了做到这一点。
我现在的 TXT 记录是这样的;
"v=DKIM1 s=_domainkey d=_amazonses.somedomain.com p=M2sXTycXkgZXXuMuWI8TczngaPIDDMToPefzGhZ3uYA="
Run Code Online (Sandbox Code Playgroud)
这是您正确制作TXT记录的方式吗?我做错了什么吗?
谢谢
我想要实现的目标 - 底线:邮件进入收件箱而不是垃圾邮件文件夹。
我有一台运行 postfix(邮件服务器)的服务器,我有 3 个域。邮件服务器用于传入和传出邮件。
我正在使用 opendkim 进行签名并拥有 DNS 记录。
经过长时间的观察,我意识到由于不正确的邮寄者和签名者分配,邮件成为垃圾邮件。
考虑一下,我的邮件服务器是 mailserver.example.com,其他 3 个域是 example1.com、example2.com 和 example3.com
当有人从 admin@example1.com 发送电子邮件时,它应该显示:
admin@example1.com 通过 mailserver.example.com
邮寄者:mailserver.example.com
签名:example1.com
我观察到 mailjet 和 amazon 电子邮件几乎不会进入垃圾邮件,事实是,“可能”是因为原始主机名 / ip 反向解析为邮寄者和签名者。
配置文件:
/etc/opendkim/Keytable
mvs._domainkey.example1.com example1.com:selc:/etc/opendkim/keys/example1_com/selc.private
mvs._domainkey.example2.com example2.com:selc:/etc/opendkim/keys/example2_com/selc.private
Run Code Online (Sandbox Code Playgroud)
/etc/opendkim.conf
Domain example1.com
KeyFile /etc/opendkim/keys/example1_com/selc
Selector selc
Domain example2.com
KeyFile /etc/opendkim/keys/example2_com/selc
Selector selc
Canonicalization simple
Mode sv
Syslog yes
LogWhy yes
UMask 022
UserID opendkim:opendkim
KeyTable /etc/opendkim/KeyTable
SigningTable /etc/opendkim/SigningTable
ExternalIgnoreList /etc/opendkim/TrustedHosts
InternalHosts /etc/opendkim/TrustedHosts
Socket inet:34562@localhost
X-Header no
Run Code Online (Sandbox Code Playgroud)
最后 …
domainkeys ×11
dkim ×6
email ×4
spf ×3
email-server ×2
txt-record ×2
amazon-ses ×1
exchange ×1
postfix ×1
smtp ×1