我正在尝试使用以下代码使用c#发送电子邮件.
MailMessage mail = new MailMessage();
mail.From = new MailAddress(fromAddress, friendlyName);
mail.To.Add(toAddress);
mail.CC.Add(ccAddress);
//set the content
mail.Subject = emailSubject;
mail.Body = emailHeader + "\n" + emailBody;
//send the message
SmtpClient smtp = new SmtpClient(ServerAddress);
smtp.Credentials = CredentialCache.DefaultNetworkCredentials;
mail.IsBodyHtml = true;
smtp.Send(mail);
Run Code Online (Sandbox Code Playgroud)
现在我的函数收到的"toAddress"字符串可能包含一个地址,或者它可能包含许多逗号分隔的地址.
现在的问题是,在多个逗号分隔的地址的情况下,其中一个或两个可能是错误的电子邮件地址格式.
因此,当我尝试使用此代码发送电子邮件时,我得到例外:
"指定的字符串不是电子邮件地址所需的格式."
有没有办法验证逗号分隔的电子邮件地址?我曾在某处读到,验证电子邮件地址的唯一方法是向其发送电子邮件,因为验证电子邮件地址的正则表达式可能会非常庞大.
此外,我无法控制设计,或者地址字符串如何影响我的功能,我无法在UI中添加电子邮件验证,所以我很无奈......
我的问题是电子邮件不会被传递到逗号分隔字符串中的所有地址,即使只有一些地址的格式错误.
有没有办法在.NET中正确验证电子邮件地址?有没有办法清理坏的电子邮件地址并将邮件发送给好的邮件地址?
我对正则表达式很新.我正在用PHP开发一个项目,我需要验证电子邮件地址.在这个网站和谷歌搜索后我发现以下正则表达式说它应该效果最好.
if (preg_match("/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/iD", strtolower($mail_address))) {
echo "valid email";
}
Run Code Online (Sandbox Code Playgroud)
但是当我使用它时,我得到错误说,
"Warning: preg_match(): No ending delimiter '/' found"
Run Code Online (Sandbox Code Playgroud)
这段代码有什么问题?
对于PHP,使用preg,NOT ereg的最佳电子邮件验证是什么,因为它已被弃用/删除.
我并不需要检查站点存在(它不是像最大的安全性).
我已经找到了许多与ereg相关的方法,但它们(显然)并不是很好的做法.
在匹配电子邮件地址时,在我匹配之后yasar@webmail
,我想要捕获一个或多个(\.\w+)
(我正在做的事情有点复杂,这只是一个例子),我尝试添加(.\ w +)+,但是它只捕获最后一场比赛.例如,yasar@webmail.something.edu.tr
匹配但仅包括部分.tr
之后yasar@webmail
,因此我丢失.something
并.edu
分组.我可以在Python正则表达式中执行此操作,还是首先建议匹配所有内容,然后再拆分子模式?
我正在开发一个应用程序,我需要在用户的电子邮件地址之前传递"@"符号作为他/她的名字和姓氏.例如,如果用户的电子邮件地址为"user@example.com",则用户提交表单时,我会从电子邮件中删除"@ example.com",并将"user"指定为姓名.
我已经做过研究,但是无法在Ruby中找到这样做的方法.有什么建议 ??
我有一个正则表达式验证我的邮件地址,如下所示:
([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)
这完全正常,但只允许输入一封电子邮件.现在我想扩展它并允许添加多个邮件地址(例如,就像MS Outlook一样),并使用分号作为邮件分割器.
mail1@tld.com;mail2@tld.com;mail3@tld.com
现在我搜索并找到了这个:
([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}(;|$))
这在一点上有效,但遗憾的是在邮件末尾需要一个分号:
mail1@tld.com;
Run Code Online (Sandbox Code Playgroud)
当用户只输入一封电子邮件时,这不是我想要的.
如何扩展我的正则表达式(第一个)以允许添加多个邮件地址,同时让它们通过分号分割?
有人可以给我看一个示例RegEx的电子邮件地址以及如何在Objective-C中使用吗?
寻找合适的东西: name@place.something
我有一个MVC 4 Web应用程序,我需要输入并验证一些电子邮件地址,而不向用户的电子邮件地址发送电子邮件.
目前我正在使用此模式的基本正则表达式电子邮件验证:
[RegularExpression(@"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z",
ErrorMessage = "Please enter correct email address")]
Run Code Online (Sandbox Code Playgroud)
虽然这是验证电子邮件地址,但它会将1@1.1作为有效的电子邮件地址传递.目前我有一个需要符号@符号的验证.符号可以是数字/字母和._-的符号.
我的MVC 4应用程序需要更多标准的电子邮件验证.我怎么做?
一些HTML5输入元素接受该pattern
属性,该属性是表单验证的正则表达式.其他一些HTML5输入元素(例如)input type=email
会自动进行验证.
现在似乎处理验证的方式在浏览器中是不同的.给定一个特定的浏览器,比如Chrome,是否可以通过编程方式提取用于验证的正则表达式?或者也许那里有文件?
我正在寻找一个正则表达式验证电子邮件,以了解它是否有效..我有以下内容:
def is_a_valid_email?(email)
email_regex = %r{
^ # Start of string
[0-9a-z] # First character
[0-9a-z.+]+ # Middle characters
[0-9a-z] # Last character
@ # Separating @ character
[0-9a-z] # Domain name begin
[0-9a-z.-]+ # Domain name middle
[0-9a-z] # Domain name end
$ # End of string
}xi # Case insensitive
(email =~ email_regex)
end
Run Code Online (Sandbox Code Playgroud)
以上问题XXX_XXX@Xxx.com
不应该在它应该返回时有效.有关更好的正则表达式的任何想法或建议吗?
谢谢
regex ×9
c# ×3
email ×3
php ×2
.net ×1
asp.net-mvc ×1
html5 ×1
objective-c ×1
preg-match ×1
python ×1
rfc ×1
ruby ×1
validation ×1