電子メールアドレスの検証はどこまで行われるべきかと思います。私の分野は主にWeb開発ですが、これはどこでも当てはまります。
私はいくつかのアプローチを見てきました:
- 「@」が存在するかどうかを単純に確認します。これは非常に単純ですが、もちろんそれほど信頼できません。
- 標準の電子メール形式のより複雑な正規表現テスト
- 完全な正規表現に対するRFC 2822 -これに伴う問題は、多くの場合、電子メールアドレスが有効であるかもしれないということですが、それはおそらく、ユーザーがどのような意味ではありません
- DNS検証
- SMTP検証
多くの人が知っているかもしれませんが(多くの人は知らない)、電子メールアドレスには、ほとんどの人が通常考慮しない多くの奇妙なバリエーションがあります(RFC 2822 3.4.1を参照)が、あなたの検証:電子メールメッセージをアドレスに送信できるようにするか、それともユーザーが入力することを意図したものであるかを確認しようとしていますか(それ以外の場合は、「有効」 'アドレス)。
私が検討したオプションは、より難解なアドレスで警告を出すだけですが、リクエストは通過できますが、これによりフォームがより複雑になり、ほとんどのユーザーが混乱する可能性があります。
DNS検証/ SMTP検証は非常に簡単に思えますが、DNSサーバー/ SMTPサーバーが一時的にダウンし、ユーザーがどこかに登録できない、またはユーザーのSMTPサーバーが必要な機能をサポートしていないという問題が発生することを予測しています。
ここにいる経験豊富な開発者の中には、これをどのように扱うのでしょうか?私がリストしたもの以外のアプローチはありますか?
編集:私はすべての中で最も明白なことを完全に忘れて、確認メールを送信しました!それを指摘してくれた回答者に感謝します。はい、これは非常に簡単ですが、関係者全員の面倒な作業が必要です。ユーザーは電子メールを取得する必要があり、開発者はユーザーデータが有効であると確認される前にユーザーデータを記憶する必要があります。