var arr_domains = new Array('163.com','126.com','188.com','21cn.com','263.net','265.com','3126.com','56.com','avl.com.cn','citiz.net','chinaren.com','china.com.cn','caijing.com.cn','daum.net','eyou.com','etang.com','gmail.com','hotmail.com','hanmail.net','live.cn','msn.com','mail.china.com','nate.com','naver.com','newhua.com','qq.com','sina.com','sohu.com','sogou.com','tom.com','vip.sina.com','vip.163.com','vip.sohu.com','yahoo.com.cn','yahoo.cn','yahoo.com.tw','yahoo.com','yahoo.com.hk','yahoo.co.jp','yahoo.co.kr','yeah.net');
function filterEmailList(user_name){ var emailHeader = getEmailHeader(user_name); var emailFooter = getEmailFooter(user_name); var d; var i; var newDomain; for (i=0; i < emailFooter.length;i++) { d = 0; newDomain = []; var tempEmail = emailFooter.substr(0,i+1); for (j in arr_domains) { if (emailFooter == arr_domains[j]) { continue; } var tempStr = arr_domains[j].substr(0,i+1); if (tempEmail == tempStr) { newDomain[d] = arr_domains[j]; d++; } } } if (d > 0) { initEmailList(emailHeader, d, newDomain); } else { closeEmailList(); } }
发布评论
评论(7)
个人感觉验证这个没啥多大意义吧,防不胜防的
每个公司和学校都有自己后缀的邮箱的,这个后缀名怎么能限制
其实真做到限制用户随便输入垃圾不存在的邮箱地址很难,可以说不可能的。只要尽量限制他输入垃圾邮箱,比如像浪际天涯 说的那样弄个下拉邮箱后缀来让用户选择,但是这样并不能保证邮箱是否存在的,但也只能这样限制了。俺给你提供一下类似下拉的例子
var arr_domains = new Array('163.com','126.com','188.com','21cn.com','263.net','265.com','3126.com','56.com','avl.com.cn','citiz.net','chinaren.com','china.com.cn','caijing.com.cn','daum.net','eyou.com','etang.com','gmail.com','hotmail.com','hanmail.net','live.cn','msn.com','mail.china.com','nate.com','naver.com','newhua.com','qq.com','sina.com','sohu.com','sogou.com','tom.com','vip.sina.com','vip.163.com','vip.sohu.com','yahoo.com.cn','yahoo.cn','yahoo.com.tw','yahoo.com','yahoo.com.hk','yahoo.co.jp','yahoo.co.kr','yeah.net');
function filterEmailList(user_name){
var emailHeader = getEmailHeader(user_name);
var emailFooter = getEmailFooter(user_name);
var d;
var i;
var newDomain;
for (i=0; i < emailFooter.length;i++) {
d = 0;
newDomain = [];
var tempEmail = emailFooter.substr(0,i+1);
for (j in arr_domains) {
if (emailFooter == arr_domains[j]) {
continue;
}
var tempStr = arr_domains[j].substr(0,i+1);
if (tempEmail == tempStr) {
newDomain[d] = arr_domains[j];
d++;
}
}
}
if (d > 0) {
initEmailList(emailHeader, d, newDomain);
} else {
closeEmailList();
}
}
验证邮箱首先肯定要格式验证,然后对其正确性检查一般网站有这几种:
一、限定邮箱的后缀,比如在前端只能让输入邮箱的用户名,而后缀用下拉列表框让用户选择,这里只限制比较常用的邮箱。现在比较少用了。
二、通过发验证信给用户注册的邮箱,用户注册完后需要到邮箱激活才能登录网站,这是比较常用的方式。
三、先让用户注册使用,当只使用一次并且超过一定时间没有登录的用户要求用户激活。
验证邮箱是否真实只能发封激活邮件让用户去激活了。。
否则就算验证通过也不一定是他本人的。。
我觉得用程序去验证邮箱的证实性没有太大意义,比如 123456@qq.com 这样的邮箱检是确实存在的,但是也无法保证这个邮箱是我本人的。所以 一般的做法为 首先判断邮箱格式,接着是:通过往邮箱发送验证连接,判断是否点了指定的连接从而可以判断邮箱是否可用。
当然,如果验证 email 地址存在的话使用 checkdnsrr() 函数来验证,或 fsockopen(),等。
除了验证邮箱格式外,检查邮箱的后缀名是否为通用常见的
搜狐的邮箱验证好像做了这个检查。