1

次のような電子メールのテキスト ファイルがあります。

10:info@example.com;dev@example.com
12:john@host.com; "George <g.top@host.com>" 
43:jim.p@web.com.;sue-allen@web.com
...

リストに適切にフォーマットされたエントリが含まれているかどうかを確認したい。無効なアドレスのリストを確認して提供するツールまたは Web サービスをご存知ですか?

更新親愛なる皆様、ご意見をお寄せいただきありがとうございます。私は本当に基本的な構文チェックを探していたので、Rafe のアイデアにとどまります (Java で行います)。

4

5 に答える 5

3

おそらく、電子メールを検証する最も簡単な方法は、それにメッセージを送信することです。Seanが指摘しているように、これによりDoS攻撃にさらされる可能性がありますが、説明からすると、Webページではなくテキストファイルがあるように見えるため、これは問題にはなりません。

正規表現は電子メールを照合するための優れたツールではありません。単純な照合が失敗する有効なアドレスがたくさんあります。詳細については、正規表現を使用して電子メールを検証する試みのこの比較を確認してください。

それらをオフラインでチェックする必要がある場合は、電子メールをパーツ(つまり、@の前と@の後のパーツ)に分割し、カスタムバリデーター(または正規表現)を作成してそれらのパーツを検証できます。

于 2009-07-25T15:18:38.250 に答える
3

これを読んで、RFCに準拠した方法でそれを行っています:

http://www.eph.co.uk/resources/email-address-length-faq/

于 2009-07-25T15:02:46.453 に答える
3

電子メールの検証は、正規表現ほど単純ではありません

まず、この記事I Knew How To Validate An Email Address until I Read The RFC を読みます

昔は、ユーザーのメール サーバーに接続し、VRFY コマンドを使用してメール アドレスが有効であることを確認するだけで済みましたが、スパマーがその特権を悪用したため、私たちはすべて負けてしまいました。

ここで、3 つの部分からなるアプローチをお勧めします。

  1. 構文の妥当性を確認してください。Mail perl モジュールのモンスター正規表現を使用して、電子メール アドレスが適切な形式であることを確認できます。次に、チェックの一環として、必ず localhost ドメイン/IP をブラックリストに登録してください。

  2. ドメインが有効であることを確認します。ドメインで DNS 検証チェックを実行します。これをさらに一歩進めて、STMP チェックを使用して、ドメインの有効なメールサーバーに接続できることを確認できます。ただし、仮想ホスティング スキームが原因で、いくつかの偽陰性の結果が生じる場合があります。

  3. 実際のメールを送信しますが、サーバー上のスクリプトにリンクする 1 つの画像を含めます。電子メールが画像とともに読み取られると、画像がダウンロードされたことがサーバーに通知されるため、電子メールは有効で有効です。しかし、最近の多くの電子メール クライアントは、まさにこの理由からデフォルトで画像を読み込まないため、100% 効果的ではありません。

資力

  1. ASP での電子メール アドレスの検証(オンライン)
  2. PHP での電子メール アドレスの検証(コード例)
  3. この商用製品は一括メール認証を行います← これはおそらくあなたが探しているものです
  4. SO質問:メールを送信せずにメールアドレスが存在するかどうかを確認する方法
于 2009-07-25T15:45:34.827 に答える
2

Email::Address モジュールを使用してこれらのアドレスを検証する簡単な Perl スクリプトを作成しました。

#!/usr/bin/env perl

use Email::Address;

while (<>) {
    chomp;
    @addresses = split /\;/;

    foreach my $address (@addresses) {
        if (!Email::Address->parse($address)) {
            print $address, "\n";
        }
    }
}

モジュールをインストールするだけです。そのホームページは次のとおりです。

http://emailproject.perl.org/wiki/Email::アドレス

于 2009-07-25T15:48:46.443 に答える