从我的networking服务器发送到一个Gmail地址的邮件已经被Gmail标记为垃圾邮件,其中From:地址为websitevisitor@gmail.com 。 “ From:字段由表单数据填充,并对应于访问者的实际电子邮件地址,该地址通常是Gmail地址。 Return-Path:始终指向地址[email protected] ,这意味着SPF和DKIM检查将起作用。
当我检查Gmail帐户中的原始电子邮件时,我看到以下内容:
Delivered-To: [email protected] ... Return-Path: <[email protected]> Received: from mywebserver.com (mywebserver.com. [my:ipv6:address]) by mx.google.com with ESMTPS id xxx for <[email protected]> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Feb 2016 00:40:02 -0800 (PST) Received-SPF: pass (google.com: domain of [email protected] designates my:ipv6:address as permitted sender) client-ip=xxx; Authentication-Results: mx.google.com; spf=pass (google.com: domain of [email protected] designates my:ipv6:address as permitted sender) smtp[email protected]; dkim=pass [email protected]; dmarc=fail (p=NONE dis=NONE) header.from=gmail.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mywebserver.com; s=mydkim; h=Date:Message-Id:Sender:From:Subject:To; bh=w2snQznwxlVRVACmfQELC7VGmD1dcYdiCXbCIRYFKRs=; b=a0Vy3Ky43J5FdiWSuQ4qvTTH47G+Js0W/qtRU5gMlxfesNqrlyaIyExaIZlWvHNL4o0LNOF1GI94w4C41mmH+2JIkMEQZazw0MainP7UyUgsm/RZbAWoRuecPv+k108FlsWMP/l1UttXAdlvBVJmV2UGsYYlSSjKErQEF8tv3K0=; Received: from apache by mywebserver.com with local (Exim 4.80) (envelope-from <[email protected]>) id 1aQWVF-00009b-2X for [email protected]; Tue, 02 Feb 2016 09:40:01 +0100 To: [email protected] From: Website User <[email protected]> Sender: [email protected] ...
请注意,SPF和DKIM检查均通过,但DMARC检查不通过。 经过一番search之后,我使用From:地址将其logging到DMARC中,根据堆栈溢出的这个答案获取它的参考域。
三个问题:
dmarc=fail可能是垃圾邮件被Gmail分配给垃圾邮件的原因吗? From:地址而不是Return-Path (信封发送者)上运行? From:标题必须对应一个地址@mydomain.com那么我们应该如何指定消息的实际 (逻辑,血肉和血液)发送者? 将SPF和DKIM视为validation邮件path的方法,并将DMARC看作是也validation邮件发件人的扩展。 可以把这个想成联邦快递的信件。 validation信封的运送地点是很容易的,信使是合法的,但是它并不能certificate信封内的信件是否真的来自其上印有姓名的人。
您的networking服务器是mywebserver.com的有效SMTP服务器,并且您的发件人地址是合法的,但这不足以让其他服务器相信您有权以[email protected]发送。 GMail如何知道你的服务器没有被黑客入侵或用于恶意目的? Gmail的服务器不会盲目地相信你发送邮件作为他们的用户之一 – 除非你是由他们托pipe,然后你可能无法发送到雅虎。
为了解决您的问题的第一部分,是的,这很可能是GMail将其归类为垃圾邮件的原因。 欺骗“发件人”地址的最古老的垃圾邮件中心forms。 这是大多数用户看到消息时所看到的内容,也是他们想要信任的主要字段。 当使用不属于该邮件服务器的发件人地址发送来自合法邮件服务器的邮件时,邮件仍然是红色标记。
如您所述,DMARC在发件人地址上作为规范的一部分进行操作。 当然,这使得编写代表某人发送的Web应用程序变得更加困难,但这就是关键所在。 至于他们为什么这样做 – 呃,这取决于规范的devise者,但这是一个权衡。 如果你在这个限制之内,他们正在走高速路,build立一个运作良好的系统。 也许未来的机制会find解决办法。
不幸的解决scheme是只使用您可以控制的地址。 为解决您的第三个问题,请使用您的域名签署您的消息,并在正文中提及它是代表[email protected]发送的。 否则,您将不得不请求您的收件人将地址添加到白名单中。 对于合法的networking应用程序开发人员来说没什么好玩的,但它将保护收件人收件箱的神圣性。 使用带有Web用户电子邮件地址的回复标题可能会有好运气。
在这个DMARC线程上讨论了这个限制。
同时,您可以尝试确保您的服务器不在任何RBL上列入黑名单。 这可能是因为你可能会失败DMARC,但是如果你有足够的声誉,仍然可以通过一些垃圾邮件filter,但我不会依赖它。
1)是的,可能dmarc失败将导致gmail垃圾邮件
2)也会对这个问题的答案感兴趣
3)我会(并且我们)使用客户地址的回复字段,我们的邮件是这样的:
主题:联系表格
希望这可以帮助