我试图通过首先解析其 dns 来验证电子邮件是否确实存在,然后使用以下代码检查电子邮件是否有效:
email = test@cisco.com
domain = email.split("@")[-1]
records = dns.resolver.query(domain, 'MX')
mxRecord = records[0].exchange
mxRecord = str(mxRecord)
server.connect(mxRecord)
server.helo(host)
server.mail('myemail@gmail.com')
code, message = server.rcpt(str(email))
server.quit()
if code == 250:
print('valid email', message)
else:
print('invalid email', message)
Run Code Online (Sandbox Code Playgroud)
这几次有效,但是当我发送多个请求时,我收到如下消息:
“5.7.1 服务不可用,客户端主机 [122.166.xxx.xxx] 使用 Spamhaus 被阻止。要请求从此列表中删除,请参阅 http://www.spamhaus.org/lookup.lasso (AS160312312) [BL2NAM02FT12312.eop-nam02。 prod.protection.outlook.com]'"
我知道他们正试图阻止我的 IP 地址,因为它认为它是垃圾邮件。
以下是我的问题:
server.mail('myemail@gmail.com')
我刚刚设置了一个表单的验证,我决定尝试使用filter_var函数来检查我的电子邮件地址的有效性.我不知道filter_var实际上允许在哪里(因为文档很简单),我发现它允许一个像test @ test这样的电子邮件地址.在域中是否必须有.com,.net等...
我想在包含电子邮件地址的文本字段中进行验证.
在字符串"emailRegEx"中添加什么来限制用户在电子邮件地址中插入三个点或者我必须在方法中写入相同的内容.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string.
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
- (BOOL)EmailValidationL:(NSString *)email
{
NSString *emailRegEx =@"(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}"
@"~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\"
@"x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-"
@"z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5"
@"]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-"
@"9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21"
@"-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])";
NSPredicate *regExPredicate =
[NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegEx];
a= [regExPredicate evaluateWithObject:email];
return a;
}
Run Code Online (Sandbox Code Playgroud) 我想为在Passport/Neo4J上运行的用户身份验证系统设置3件事:
1)手动用户帐户激活(以便管理员执行);
2)仅邀请帐户创建;
3)激活前通过电子邮件确认帐户;
我想知道你是否知道任何易于使用的Passport插件(我没有找到任何自己,但也想要你的建议)以及 - 实现它的最佳方法(也许你已经完成/看到它,所以你可以分享代码?)
谢谢!
authentication email-validation user-accounts node.js passport.js
我见过很多例子,有很多'不,你错过了什么'评论.匹配电子邮件地址的正确方法是什么?
出于Sanity的缘故,只有完全限定的域名,不允许使用@localhost.(或两种方式)
必须允许子域名(issac@deptartment.company.museum)
我正在使用jQuery.Validation插件进行客户端验证,其中包括验证电子邮件地址.现在我也想在服务器端验证(对于没有javascript的用户等).由于缺乏更好的想法,我开始使用正则表达式,但很快我就意识到我希望使用与jQuery方法相同的要求.或者,如果我能找到一些方法来覆盖我自己的jQuery验证要求,那就可以了.
有谁知道jQuery方法有什么要求?它是正则表达式验证,并且,如果是,表达式是什么?有没有办法覆盖它,即使我不知道它?
(我已经注意到可以预先形成远程验证,但如果可能的话,我想避免这种额外的网络流量......)
我需要知道如何在不使用电子邮件确认链接的情况下检查电子邮件地址是否有效.我怎样才能做到这一点?
由于电子邮件地址有很多有效字符,是否有任何有效的电子邮件地址本身可以是XSS攻击或SQL注入?我在网上找不到任何相关信息.
电子邮件地址的本地部分可以使用以下任何ASCII字符:
- 大写和小写英文字母(a-z,A-Z)
- 数字0到9
- 人物!#$%&'*+ - /=?^ _` {| }〜
- 性格.(点,句号,句号),条件是它不是最后一个字符,并且还提供它不连续出现两次或多次(例如John..Doe @ example.com).
http://en.wikipedia.org/wiki/E-mail_address#RFC_specification
我不是在问如何防止这些攻击(我已经在使用参数化查询和转义/ HTML净化器),这更像是一个概念验证.
首先想到的是'OR 1=1--@gmail.com,除了不允许空格.所有SQL注入都需要空格吗?
有多种方法可以生成电子邮件地址字符串,这些字符串与直接字符串比较(见下文)不同,但在逻辑上是等效的(即发送到两者的邮件都转到同一个邮箱).这通常允许用户提供看似独特的电子邮件地址,即使不允许严格的平等.
我希望找到一个试图进行规范化的库,以便从大量的电子邮件地址中找到一些重复项.这里的目标是找到尽可能多的重复项.鉴于这对于多种用途有多大用处(在我的情况下,它是简单的滥用检测,因为滥用帐户倾向于(尝试)只重用某些帐户),我认为可能存在现有的解决方案.
那么什么样的东西可以变化?我至少知道这样的事情:
理想情况下,这将是Java,虽然脚本语言也可以工作(命令行工具)
我需要一个正则表达式,以便我可以在数据库表中找到所有无效的电子邮件地址.
SELECT *
FROM dbo.[Users] AS u
WHERE u.EmailAddress not like 'regular expression of valid email addresses'
Run Code Online (Sandbox Code Playgroud)
SQL Server是否支持正则表达式?如果是这样,我怎么能写一个电子邮件地址?
email-validation ×10
email ×2
php ×2
regex ×2
email-spam ×1
ios ×1
iphone ×1
java ×1
jquery ×1
node.js ×1
objective-c ×1
passport.js ×1
python ×1
smtp ×1
sql ×1
sql-server ×1
swift ×1
t-sql ×1
xss ×1