1

Railsアプリケーションからメールを送信していますが、何らかの理由でSPFが通過せず、常に失敗またはニュートラルと表示されます。

順方向と逆方向のDNSを設定しました(正しいと思います)。私はここのガイドに従ったが役に立たなかった。良いことは、私のメールがスパムになっていないことですが、それだけでは十分ではありません。SPFを通過させたいのです。誰かが私を助けることができればそれはありがたいです。

ホスト名をに設定していmail.example.comます。逆引きDNSを同じに設定しています。ただし、メールを送信するときは、help@mail.example.comからではなくhelp@example.comからメールを送信するようにします。help@mail.example.comからメールを送信すると、ニュートラルなSPFが得られますが、help @ example.comに変更すると、失敗します。私が理解している方法は、それがまだFQDNからのものである場合は通過するはずですが、通過しないということです。

これらは私のDNSレコードです:

A = mail xxx.xxx.xxx.xxx
A = example. xxx.xxx.xxx.xxx
A = www xxx.xxx.xxx.xxx
MX = example. mailstore1.secureserver.net.
MX = example. smtp.secureserver.net.
MX = example. mail.example.com.
TXT = v=spf1 mx include:mail.example.com -all.

最初の2つのMXレコードはgodaddyからのものですが、私はslicehostでサイトをホストしています。また、役に立たないと思うCNAMEレコードとNSレコードがいくつかありますが、役立つ場合に備えて言及しています。

UbuntuとRails3でpostfixを使用しています。

何か案は?

更新: これが私の失敗したメールの1つのヘッダーです

Delivered-To: myemail@gmail.com
Received: by 10.229.49.65 with SMTP id u1cs60507qcf;
        Mon, 12 Dec 2011 19:20:11 -0800 (PST)
Received: by 10.42.150.135 with SMTP id a7mr13973149icw.53.1323746409644;
        Mon, 12 Dec 2011 19:20:09 -0800 (PST)
Return-Path: <help@example.com>
Received: from mail.example.com ([xxx.xxx.xxx.xxx])
        by mx.google.com with ESMTP id y15si2866827ibk.138.2011.12.12.19.20.09;
        Mon, 12 Dec 2011 19:20:09 -0800 (PST)
Received-SPF: fail (google.com: domain of help@example.com does not designate xxx.xxx.xxx.xxx as permitted sender) client-ip=xxx.xxx.xxx.xxx;
Authentication-Results: mx.google.com; spf=hardfail (google.com: domain of help@example.com does not designate xxx.xxx.xxx.xxx as permitted sender) smtp.mail=help@example.com
Received: from localhost.localdomain (localhost [127.0.0.1])
    by mail.example.com (Postfix) with ESMTP id B6BB31C1F5D
    for <myemail@gmail.com>; Tue, 13 Dec 2011 03:20:08 +0000 (UTC)
Date: Tue, 13 Dec 2011 03:20:08 +0000
From: Example <help@example.com>
To: myemail@gmail.com
Message-ID: <4ee6c468a8150_7e4e4ea930773a1@mail.example.com.mail>
Subject: Password Reset
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

解決策: spfレコードを引用符で囲みます。私の場合は、次のようになります。

TXT = "v=spf1 mx include:mail.example.com -all"
4

1 に答える 1

3

コメントに基づく要約:
引用符はTXTレコードの内容で重要です。スペースは区切り文字としてカウントされます。DNSユーザーインターフェイスに出会ったところ、v = spf1 -all(引用符が欠落していることに注意)を入力すると、1つのアトム "v =spf1-all"ではなく2つのアトム"v=spf1"-all"になりました。後者のみが機能します。

SPFレコードが台無しになっています。「インクルード」はリダイレクトです。あなたはexample.comのSPFレコードがmail.example.comのSPFレコードであると言っていますが、あなたの質問に基づいて、これはあなたが望むものではないと思います。質問には、関連するすべてのDNS情報(MX、A、TXT、SPF)を含める必要があります。何かのようなもの:

example.com。TXTで"v= spf1 include:example.net -all"
example.net。TXTで"v= spf1 mx -all"
于 2011-12-14T19:06:41.630 に答える