0

メールを送信できるasp.netでフォームを作成しようとしています。メッセージを送信したいすべてのメールアドレスを入力できるテキストボックスが欲しい...

ただし、そこにバリデーターを追加して、ユーザーが常に正しい構文を使用できるようにしたいので、その文字列を c# で使用してメッセージを適切に送信します。

今のところ、単一のメールアドレスのバリデーターがあります...

<asp:RegularExpressionValidator ID="RegularExpressionValidator5" runat="server" 
    ControlToValidate="tbxAlClEmail" ErrorMessage="E-mail Invalido" 
        Font-Bold="True" ForeColor="Red" 
        ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
        ValidationGroup="vgpNuevoCliente">
</asp:RegularExpressionValidator>

だから、それを見ることができます.... email = \w+([-+.']\w+) @\w+([-.]\w+) .\w+([-.]\w+)*

(すべての種類の電子メールアドレスを検証できる正規表現を見つけるのは難しいことを知っています...しかし、これは行う必要があります)

今、この正規表現を asp.net バリデーターに追加したいと思います。

メール ( (,|;) [スペース]* メール )*

私が望む結果の例:

john@hotmail.com, amy@yahoo.com,diana@hotmail.com; alicia@gmail.com

私はあなたがそれで私を助けてくれることを願っています...前もって感謝します

4

1 に答える 1

1

あなたが持っているものは、電子メールアドレスを検証するために機能しません.

電子メールの検証に正規表現を使用することは非常に難しく、バリデーターのネット上には文字通り何百もの例があり、それに近づいていますが、まだ完全ではありません.

しかし、とにかくそれは問題のほんの一部です。あなたの絶対的な最善の策は、アドレスの検証をやめて、どのアドレスが失敗したかをユーザーに伝えながら、単にメッセージを送信することです.

正しく実行している場合は、とにかく TO フィールドにすべてのアドレスを含めるのではなく、個々のアドレスに個別のメッセージを送信しています。これにより、エラーを報告するのがかなり簡単になります。

もちろん、それでも多数のメール サーバーは、不正なメール アドレスが送信されても​​応答しないように構成されており、代わりにメッセージをブラック ホール化するだけです。検証などの量はそれを乗り越えることはありません。

楽しみとして、問題を完全に理解するために、次のすべてを読みたいと思うかもしれません: http://www.regular-expressions.info/email.html

于 2012-10-02T21:32:03.713 に答える