4

特定のメールアドレスが「本物」であり、実際に存在するメールアカウントに属していることを証明する方法はありますか? 電子メール パターン定義に従って有効であるが、実際には存在しない電子メールを介して大量の登録を取得します。偽のメールアドレスに送信すると、私たち(および他の人)がメールごとに支払うため、多額の費用がかかります(偽のメールアカウントに100.000回送信すると、数字を表示するだけで年間4桁の費用がかかります. その瞬間を正確にチェックしたい。1 分後にメール アドレスがオフラインになっても気にしません。

理想的な解決策は、bash のワンライナーです (すべての主要言語で呼び出すことができます)。

私がこれまでに行ったこと:

  1. この同様の 3yo スレッドを確認すると、実際のケースでは単純に間違っています。メールを送信しているときに、メールアドレスが存在するかどうかを確認したい(コストを防ぐため)。
  2. ホスト名がping可能かどうかを確認します。
  3. ここのように、メールアドレスが ping 可能かどうかを確認します。これを bash スクリプトで再構築しようとしましたが、失敗しました (アドレスを取得するのは難しいです!)。

私が本当に欲しいもの:

PHP または Java で、平均的なコーダーが実装可能なメール アカウントが存在するかどうかの信頼できるチェック。まさにこれを行う bash ワンライナーまたは php/java ライブラリ。無料または商用。

報奨金を出します!

4

3 に答える 3

4

メール管理者は、送信先のアドレスが存在しない場合でも、すべて「OK」の送信を試みるように選択する場合があります。これは、スパマーが私のドメインのアドレスを「学習」するのを難しくするためです。

より良い方法は、電子メールで一括登録を受け入れるのではなく、キャプチャ (何らかの種類) を含む Web フォームを介して登録を要求し、確認電子メールを送信することです。(まだこれを行っていない場合)。

構築するのに十分な履歴がある場合は、既知の悪意のある電子メール アドレスのブラック リストを作成して、送信前に参照することをお勧めします。あなたの登録者は何mailadmin@yourdomain.comroot@google.comですか?

私のビジネスでは、SMTP サーバーをローカルでホストして、正当な電子メール キャンペーンの配信失敗に伴うコストを回避しています。そうでなければ、私はお金を燃やし、砂をシャベルで海に投げ込んでいたでしょう.

于 2013-08-19T23:02:00.317 に答える
3

SMTP プロトコルは、メールボックスの可用性を確認する手段を提供するようには設計されていません。

電子メールを配信する場合、通常、次の手順が実行されます。

メールドメインのMXレコードを確認

へのメールで、 のsomebody@example.comMX レコードがあるかどうかが確認されexample.comます。複数ある場合は、優先度の高いものに連絡してメールを受け付けます。応答しない場合は、優先度の低い既存の MX に連絡します。

MX レコードがない場合、「A」レコードの検索example.comが行われ、その IP が接続されてメールが受け入れられます。

MXまたはAレコードに記載されているサーバーへの接続

受信メール サーバーに接続します。存在する場合、メールが配信される可能性があります。SMTP プロトコルでは、送信メールサーバーが受信メールアドレス、送信メールアドレス、そしてメール自体を送信する必要があります。

受信メール サーバーは、メールをユーザーのメールボックスに配信しようとします。

これは、いくつかの理由で失敗する可能性があります。そして、重要な情報は、送信メールサーバーがメールが受信されたという肯定的な応答を受け取り、接続が終了した後に、このステップが行われる可能性があるということです. したがって、送信メールサーバーは、配信が失敗したという手がかりを取得しない場合があります。

この場合、受信メールサーバーはバウンス メッセージを送信します。ただし、このバウンスメールは、エラー受信用に指定されたメールアドレスに送信されます。これは元のメール アドレスである可能性がありますが、別のアドレスである可能性もあります。さらに、バウンスを受信する責任のあるメールサーバーは、元のメールを送信したサーバーであってはなりません。

この時点で、電子メールが実際には非同期の情報交換媒体であり、信頼性がほとんど組み込まれていないことは明らかです。

多少の改善が期待できるテクニックもあります。通常、バウンス メッセージの送信は最善の方法ではありません。適切に構成されたメール サーバーは、メールボックスが存在しない、満杯であるなどの問題があるメールボックスのメールの受信を拒否します。

一方、メールの新しい大きなブラック ホールはスパム フィルターです。通常、これらはユーザーによって設定され、メール サーバーは既存のメールボックス宛てのメールを問題なく受信しますが、スパムは自動的に削除されるか、スパム フォルダに移動さ​​れて無視されます。

また、一時的な失敗状態でメールを配信しようとする試みに応答する、グレーリストのような技術もあります。通常のメールサーバーは後で試行し、最終的にグレーリスト タイマーが終了し (設定によっては 1 時間以上かかる場合があります)、実際の配信試行が行われ、実際の最終的な拒否または受け入れが行われます。一方、メールサーバーは、新しいスパムメールの波を検出するためのスパムフィルターが組み込まれていることを望んでおり、グレーリストは実際には少しの時間を稼ぐだけです. よく知られているメール サーバーによる通常の配信試行は、すぐに成功します。これは、スパム以外のメール配信が成功するとホワイトリストに登録されるためです。

実際のメールがどのように機能するかについてこれまで説明してきましたが、メールアドレスが実際に存在するかどうかを「単純に」検出する方法がないことがお分かりいただけたと思います。あなたができる唯一のことは、それが存在するかどうかを検出しようとすることです.メールボックスが存在しないことを明確に伝えられた場合、ターゲットメールサーバーが配信を拒否するため、おそらくそのターゲットにメールを配信しようとするべきではないと推測できます. .

他の結果は何も教えてくれません。また、メール アドレスが存在するかどうかを検出するには、メールを送信する必要があることにも注意してください - catch-22 の状況。

適切なバウンス管理と配信失敗検出を実装して、明らかに失敗しているメール アドレスを削除する必要があります。それ以外は検出できません。

于 2013-08-19T23:03:58.883 に答える