現在、私は Web アプリケーションに取り組んでおり、ユーザーが Web フォームを通じて電子メールを入力できるようにしたいと考えています。つまり、ユーザーは電子メール アドレスとメッセージを設定し、「送信」をクリックすると、Web アプリケーションがヘッダーの電子メール アドレスを使用して受信者に電子メールを送信しますFROM
。送信プロセスは、もちろん、Web サイトの訪問者からの電子メール サーバーにアクセスできないため、独自の SMTP サービスを使用して行われます。
さて、私は、これらのメールは受信者のサーバーによって拒否される可能性が高いため、これはおそらく悪い考えだと聞きました。しかし、私はまだそれがなぜなのか、そしてこのプロセスがどのように機能するのかを完全に理解していません。今日電子メールに使用されているスパム対策およびなりすまし対策の最もよく使われている2つの技術は、DKIMそしてSPF。
そこで、メールが拒否される理由と、DKIM/SPF がここでどのように役立つのかを理解したいと思います。
それでは、SPF から始めましょう。
私の理解する限りでは、受信者のサーバーは、ヘッダーのドメインMAIL_FROM
と DNS システムを使用して、メールを送信できる IP アドレスを確認します。さて、上記の例では、ヘッダーを eg (Web サイトの訪問者が設定したアドレス)FROM
に設定してWeb アプリケーションでメールを送信すると[email protected]
、ヘッダーには影響しません (?) MAIL_FROM
。メールは私のメール サービスを通じて送信されるため、MAIL_FROM
ヘッダーには私のドメインが含まれ、私の理解する限りでは、メールを送信して SPF を渡すことは可能であるはずです。
もう一つのスパム対策技術は DKIM です。
電子メールに署名し、受信側サーバーは DNS を調べて、署名を検証するための適切な公開キーを見つけます。ここでは、それが正確にどのように行われるのかわかりません。ヘッダーがFROM
署名の一部になることはわかっていますが、受信側サーバーはどのようにして DKIM をチェックするのでしょうか?MAIL_FROM
ヘッダーから DNS を再度調べているのでしょうか? そうであれば、上記の例で DKIM を渡すこともできますが、それで正しいのでしょうか? それとも、ドメインを含めて同一にする必要があるのでしょうかMAIL_FROM
?FROM
ちょっとわかりません。
結局、DKIM と SPF はどちらも私の Web アプリケーションでは問題にならないことがわかりました。しかし、なぜそれがまだ悪い考えであり、電子メールが拒否される可能性が高いと言われているのでしょうか。それとも、私が DKIM を正しく理解していなかったのでしょうか。
私の全体的な質問: 受信側サーバーは、電子メールが拒否されたかどうかをどのようにして正確に判断するのでしょうか?
答え1
確実に知る方法はありません。MX 管理者が何が問題なのか教えてくれない限り、推測することしかできません。
メッセージの拒否は、メッセージ内、送信時、またはインターネット上の任意の場所から見つかった次のような情報に基づいて行われます。
- MTA IP アドレス/サブネット
- MTA rDNS と FCrDNS
- rDNS または HELO からの MTA FQDN
- MTA の DNSBL リスト
- インターネット上で入手可能な MTA FQDN または送信者ドメインに関するその他の情報
- 過去の接続と失敗の履歴
- MAIL FROM アドレスまたはドメイン
- ヘッダー FROM アドレスまたはドメイン
- SPF、DKIM、DMARCなどの認証方法
- メールの件名または本文内のキーワードまたはシーケンス
- メール本文とヘッダーのヒューリスティックスコアリング
アクティブな MX/MTA の設定は、軽々しく行うべきではありません。スパムが大量に継続的に送信されているため、従うべき慣例が多数あります。従わないと、拒否されたり、スパム ヒープに送られたりすることになります。最も簡単な方法は、ISP のサーバーをスマートホストとして使用することです。まず、ISP のポリシーを確認する必要があります。
さらに、許可されていない限り、システムから「エイリアン」の送信者ドメインを使用することはできません。送信者アドレスを偽造すると、すぐに悪質なスパマーの標的になります。また、ユーザーが登録時やその他の時点で送信する内容を単純に信頼することはできません。電子メール アドレスを検証しないと、わずか数時間後にサービスが悪用されることになります。