我的邮件 DKIM-Signature 凭空创建了一个电子邮件地址

Posted

技术标签:

【中文标题】我的邮件 DKIM-Signature 凭空创建了一个电子邮件地址【英文标题】:My mail DKIM-Signature creates an email address out of thin air 【发布时间】:2015-09-20 12:55:31 【问题描述】:

我使用 mandrill 发送使用 javamail 创建的电子邮件。当我尝试使用用户的发件人地址从我们的应用程序发送电子邮件时,DKIM 签名包含一个我们从未分配且不存在的电子邮件地址。当我在不使用 mandrill 的情况下发送这封电子邮件时,邮件不会被更改。

问题在于,当我们从使用 ourdomain.com 的 SKIM 签名的应用程序发送电子邮件时,我们会为不同域 user_domain.com,from 和 sender 标头设置如下:

From: Joost Schouten <joost@user_omain.com>
Sender: Joost Schouten <joost@ourdomain.com>

我们从未设置发件人标头,电子邮件地址也不存在,不幸的是,一些邮件客户端使用此地址进行回复。它是没有域的发件人电子邮件部分和 DKIM 签名域的组合。我不知道为什么会发生这种情况以及如何阻止它发生。

DKIM 签名也提到了这个不存在的地址,所以我假设这可能是原因。不幸的是,我对所有 DKIM 文档都有些迷失了,所以我希望有人能指出我正确的方向。

这是完整的邮件:

Delivered-To: info@ourdomain.com
Received: by 10.129.137.131 with SMTP id z125csp831548ywf;
        Thu, 2 Jul 2015 13:02:36 -0700 (PDT)
X-Received: by 10.170.121.210 with SMTP id n201mr40312958ykb.97.1435867356185;
        Thu, 02 Jul 2015 13:02:36 -0700 (PDT)
Return-Path: <bounce-md_30191264.559598db.v1-0709e43ec6fc4aaaa2eaa4b9a07c553a@mandrillapp.com>
Received: from mail133-7.atl131.mandrillapp.com (mail133-7.atl131.mandrillapp.com. [198.2.133.7])
        by mx.google.com with ESMTPS id 13si4642642ykz.152.2015.07.02.13.02.35
        for <info@ourdomain.com>
        (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Thu, 02 Jul 2015 13:02:36 -0700 (PDT)
Received-SPF: pass (google.com: domain of bounce-md_30191264.559598db.v1-0709e43ec6fc4aaaa2eaa4b9a07c553a@mandrillapp.com designates 198.2.133.7 as permitted sender) client-ip=198.2.133.7;
Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of bounce-md_30191264.559598db.v1-0709e43ec6fc4aaaa2eaa4b9a07c553a@mandrillapp.com designates 198.2.133.7 as permitted sender) smtp.mail=bounce-md_30191264.559598db.v1-0709e43ec6fc4aaaa2eaa4b9a07c553a@mandrillapp.com;
       dkim=pass header.i=@ourdomain.com;
       dkim=pass header.i=@mandrillapp.com
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; s=mandrill; d=ourdomain.com;
 h=From:Sender:Subject:To:Message-Id:Date:MIME-Version:Content-Type; i=joost@ourdomain.com;
 bh=b4xtohIO7sTTZ/geyDmOzKRydBw=;
 b=A1snz1SKxbRxJobxUqb5cxn2+s+Rj9osVXk61sJVNNc1VoVVmy7jh471byqGm7nYXGPqsL361zOE
   OPXxrdS+Zfr0Wrlhft5q6kgaJCy7xodtICXGGi6a/8xgUZ0Ko/JzWB2SI9Nqe6sMGwg5ecZDDxnt
   9u+cBHKpKBN4JY2pjEs=
DomainKey-Signature: a=rsa-sha1; c=nofws; q=dns; s=mandrill; d=ourdomain.com;
 b=FJ6zXTYOnZY/RN7okxXDpl5sNL0ysjDQfXixD8vfLk7nvpEB2Y7vUBe7EKbC0dLuHRtLSullN9Eg
   ARddkGh81Mes/ergpfyy/epulj745nOfPR8h4cQsu6dhe2p8xHA3H8AJDf2XTX8SnspuZrBgrcmU
   gXI1cSTr/QTAz6emAbE=;
Received: from pmta02.mandrill.prod.atl01.rsglab.com (127.0.0.1) by mail133-7.atl131.mandrillapp.com id himcdo1sar88 for <info@ourdomain.com>; Thu, 2 Jul 2015 20:02:35 +0000 (envelope-from <bounce-md_30191264.559598db.v1-0709e43ec6fc4aaaa2eaa4b9a07c553a@mandrillapp.com>)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com; 
 i=@mandrillapp.com; q=dns/txt; s=mandrill; t=1435867355; h=From : 
 Sender : Subject : To : Message-Id : Date : MIME-Version : Content-Type 
 : From : Subject : Date : X-Mandrill-User : List-Unsubscribe; 
 bh=+XtZFak4OUf8qSxm1jSRVqiU996OawoBIDsFv7gsDOM=; 
 b=UTTtcU5XeoBFrCe4v/wpBY02o5aZYRbPKWCpiKxYrrOsuqe+PqizEADb8qqkPqDKteiSOK
 K6Gz58xX1DsDGm7O6g85OX4Rqi5edA3YFVgGE4VWG7q6TxKleXsb95TXjqh/pXbUpVqH+oWn
 wnNT3PgznJFhgY0lz1njBZqvEREpg=
From: Joost Schouten <joost@user_domain.com>
Sender: Joost Schouten <joost@ourdomain.com>
Subject: Subject
Return-Path: <bounce-md_30191264.559598db.v1-0709e43ec6fc4aaaa2eaa4b9a07c553a@mandrillapp.com>
Received: from [95.85.39.219] by mandrillapp.com id 0709e43ec6fc4aaaa2eaa4b9a07c553a; Thu, 02 Jul 2015 20:02:35 +0000
X-Mailer: Mailer name
To: Receiver <info@ourdomain.com>
Message-Id: <328629681.01435867315102.JavaMail.tomcat7@www>
X-Report-Abuse: Please forward a copy of this message, including all headers, to abuse@mandrill.com
X-Report-Abuse: You can also report abuse here: http://mandrillapp.com/contact/abuse?id=30191264.0709e43ec6fc4aaaa2eaa4b9a07c553a
X-Mandrill-User: md_30191264
Date: Thu, 02 Jul 2015 20:02:35 +0000
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="_av-RYsOAD_G5IlIUfcO9tyvnQ"

--_av-RYsOAD_G5IlIUfcO9tyvnQ
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

PLAIN TEXT CONTENT

--_av-RYsOAD_G5IlIUfcO9tyvnQ
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

<html><head><title></title></head><body> THE HTML CONTENT</body></html>
--_av-RYsOAD_G5IlIUfcO9tyvnQ--

(编辑 - 添加 java 代码) 我的邮件发送代码(简体)

MimeMessageHelper helper = new MimeMessageHelper(message, false);                       helper.getMimeMessage().setSubject(emailMessage.getSubject(), defaultCharSet);

helper.addTo(new InternetAddress("some@receiver.com", "Rex receiver"));             
helper.setFrom(new InternetAddress("joost@user_domain.com", "Joost Schouten"));

//commenting this next line out does not change anything
helper.getMimeMessage().setSender("no-reply@ourdomain.com");

helper.setText(htmlContentVar, true);
helper.getMimeMessage().addHeader("X-Mailer", xMailer);
helper.getMimeMessage().addHeader("X-MC-SigningDomain", "ourdomain.com");
helper.getMimeMessage().addHeader("X-MC-AutoText", "true");
helper.getMimeMessage().addHeader("X-MC-Track", "opens,clicks");
helper.getMimeMessage().addHeader("X-MC-Tags", emailMessage.getTags());

javaMailSender.send(helper.getMimeMessage());

【问题讨论】:

你能给我们一个可以重现错误的代码示例吗?否则,我们只能猜测问题出在哪里。 @Dijkgraaf 我刚刚添加了 javacode。不幸的是,我的应用程序完全按照我的意愿创建了电子邮件。当我通过 mandrill 路由电子邮件时,标题被添加/更改。 @Dijkgraaf 问题在于 Mandrill,请参阅下面的答案。感谢您的帮助! 【参考方案1】:

问题在于 Mandrill,因为他们添加了 Sender 标头以确保它位于签署电子邮件的域上。这里明显的问题是,当我在我们自己的域中自己指定 Sender 标头时,它们甚至会覆盖 Sender 标头。目前,我们已经明确添加了Reply-to 标头以及From 标头,以邀请尽可能多的电子邮件客户端使用这些地址,而不是Sender 选项。这似乎确实有帮助,但我们不完全确定这会解决所有电子邮件客户端的回复地址问题。

我希望这可以避免有人拔出头发试图弄清楚发生了什么。这是山魈的完整答案:

感谢您与我们联系。 Mandrill 将 Sender: 标头添加到您的 邮件标题以支持签名和验证您的电子邮件时 发送域没有 SPF 和 DKIM 记录。几封电子邮件 客户端(但不是全部)选择显示此标头中的地址 而不是 From: 标头中的地址。

Mandrill 为所有从 没有设置 SPF 和 DKIM 的域。我们构建 发件人头地址通过结合From的本地部分 地址(@ 符号之前的所有内容)与歌唱域。在 很多情况下,这会创建一个实际上并不存在的地址—— 正如您所指出的那样-但通常这只影响 这些电子邮件,而不是实际的电子邮件回复。你应该还能 回复电子邮件并使用原始 From: 或 Reply-To: 地址 被用作您的回复的接收者,而不是构建的 发件人标头不存在。

我们正在寻找可以更新我们构建它的方式的方法 标题以避免混淆,但我没有可以提供的 ETA 但这些更改何时可用。

我希望这些信息对您有所帮助。让我们知道您是否有任何 更多问题。

【讨论】:

以上是关于我的邮件 DKIM-Signature 凭空创建了一个电子邮件地址的主要内容,如果未能解决你的问题,请参考以下文章

没有银弹,ChatGPT并不是凭空出现的神话。

喷上它就能凭空打字!鲍哲南团队开发新型智能皮肤,可准确识别手部动作,打字手语不在话下...

时空不平坦,能量不守恒。大爆炸时粒子凭空产生的情形

Adobe把GAN搞成了缝合怪,凭空P出一张1024分辨率全身人像 | CVPR 2022

V神担心的事情还在发生,BSC“桥”凭空增发5.6亿美金,意味着什么?

已创建Powershell电子邮件通知文件