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 回答