現在、php mail()関数を使用してメールを送信しています。 From:
ヘッダーをホスト名に対応するアドレスに設定し、次のように電子メールを送信するサーバーの逆引きDNSも設定しています。
$header = 'From: Foo <[email protected]>' . "\r\n" .
'Reply-To: [email protected]' ;
$x = mail($to,$subject,$body,$header);
これは問題なく動作するので、var、すべての電子メールは私がテストしたすべてのプロバイダーを通過します。
ホスト名は、ルートサーバーを提供する私のISPからの長くて一般的なものです。
ホスト名(システムまたはsendmailのいずれか)を変更し、それに応じて逆引きDNSを設定すると、ドメインに対応するFrom:-headerを使用できることを知っています。
ただし、Webサイトが実行されているのと同じドメインへのホスト名は、Apacheで問題を引き起こす可能性があります(ドメイン固有ではなくデフォルトの仮想ホストを配信するなど)。
これはすべて処理できることはわかっていますが、メールサーバーなどを管理したり、Amazon Simple EmailServiceを使用して考えたりする必要はありません。
私はそれとすべてを設定しましたが、メールはGmailによってスパムとしてマークされ続けます。
逆引きDNSとspfポリシーがエンベロープアドレスに対応しているので、私は驚きました。ただし、From:-headerを評価する場合、Gmailは特に厳しいようです。
そこで、SPFレコードとSenderIDレコードをDNSに追加しました
(私はそれを読み、ウィザードツールを使用してそれらを追加しました。私の理解から、それらは正しいはずです。maby私はここにエラーがありますか?)
そしてこれはDig -t txt mydomain.com
の出力です
;; ANSWER SECTION:
mydomain.com. 1800 IN TXT "spf2.0/pra include:amazonses.com include:_spf.google.com ip4:1.2.3.4 ?all"
mydomain.com. 1800 IN TXT "v=spf1 include:amazonses.com include:_spf.google.com ip4:1.2.3.4 ?all"
私はすでに変更が伝播するためにいくつかのデールを許可しましたが、Gmailはまだ私のメールをスパムとしてマークし続けます。
それでそれを要約しましょう:
From:-header tldはエンベロープドメインに対応していませんが、エンベロープドメインは送信サーバーの逆引きドメインとホスト名に対応しています(これはすべてAmazonです)。
From:-headerに対応するSPFレコードとSenderIdレコードが設定されています。
Gmailはメールをスパムとしてマークし続けます。
誰かが私を正しい方向に向けることができますか?
まあ、私は他の誰についても知りませんが、AmazonのSESはmyスパムフィルターにあり、永続的で悔い改めないスパムのソースであり、サービスはサービスのどのユーザーを特定するのに役立ちませんは合法であり、どれが合法ではありません。 Gmailがスペードをスペードと呼んでいるのはそのためではありませんが、おそらく役に立たないでしょう。
メッセージがスパムであると判断するときに使用される要素は、SPFレコードだけではありません。たとえば、GmailはDomainKeys/DKIMを調べます。さまざまな電子メールサービスとそれらが使用するさまざまな認証技術の詳細については、 http://mailchimp.com/about/authentication/ を参照してください。
メールのヘッダーを見ると、SPFは問題なく合格しました。
したがって、電子メールにDomainKeys/DKIMを実装することを検討することをお勧めします。 Gmailでは、ヘッダーの詳細に「署名者」の行が表示されます。
さらに、電子メールの内容も影響を及ぼします。 Gmailがメールが本物のメールであると信じているかどうかは関係ありませんが、ユーザーのフィードバック、コンテンツ、その他の要因に基づいて、メールにスパムのフラグが付けられる場合があります。