質問
私はJavaのより完全な電子メールバリデーターに取り組んでおり、「ユーザー名」と「アドレス」部分の両方に電子メールにコメントを埋め込む興味深い能力に出会いました。
次のスニペットから http://www.dominicsayers.com/isemail/ 電子メール内のコメントについてこれを言うことがあります。
コメントは、括弧(これらのような)に囲まれたテキストです。これらは大丈夫ですが、アドレスの一部を形成しません。つまり、first.last@example.comに送信されたメールは、first(a).last(b)@example(c).com(d)と同じ場所に移動します。奇妙だが真。
- このようなメールは本当に存在しますか?
- このようなホストを形成することは可能ですか?
「Google(Ingrore).com」などのURLを入力しようとしましたが、Firefoxやその他のブラウザは失敗しましたが、これは間違っているのか、ホスト名のコメントについて知らないので、これだと思っていましたか?
解決
その構文 - an内のコメント addr-spec
- 元のメールRFCによって実際に許可されました、 RFC 822. 。ただし、使用したいコメントの配置は、そのRFCが改訂されたときに非推奨されました。 RFC 2822... 10年前。現在のバージョンではまだ時代遅れとしてマークされています。 RFC 5322. 。その構文を使用して何かを放出するための良い言い訳はありません。
アドレスパーサーは、ここで利用しようとしているような10年削除されたビットを含む、考えられるすべてのケースをカバーするために、後方互換性があると想定されています。しかし、私は多くの多くの郵便物エージェントがそれらのコメントを適切に解析できないと確信しています。したがって、あなたが技術的には、 「時代遅れのアドレス指定」 RFCのセクションでは、実際にはあまり良いことはありません。
HTTPについては、構文ルールは電子メールの構文ルールと同じではありません。ご覧のとおり、RFC 822のコメントセクションは適用できません。
他のヒント
スペックでそれを行うことができるからといって、そうすべきであるという意味ではありません。たとえば、Gmailはアドレスのコメント形式を受け入れません。
第二に、(最後のポイントまで)、電子メールアドレスで許可されているParen-Commentsは、それらがURLで機能することを意味しません。
最後に、私のアドバイス:私はあなたの要件に合わせてあなたのバリデーターの完全性を調整します。新しいMTA(メール転送エージェント)を書いている場合、おそらくすべてを行う必要があります。ユーザー入力のバリデーターを書いている場合は、シンプルに保ちます。
- @を探してください、
- 前に(ユーザー名)と後(ドメイン名)を持っていることを確認してください。
- ホスト名文字列に「ドット」があることを確認してください。
- 追加クレジット]ホスト名のDNS検索を行い、それが解決することを確認します。