PHP-PHP中如何验证是否存在邮箱?

PHP-PHP中如何验证是否存在邮箱?

晚风撩人 发布于 2016-12-08 字数 55 浏览 1241 回复 7

我需要完美验证邮箱的真实性,而不是验证邮箱的格式

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

瑾兮 2017-10-11 7 楼

个人感觉验证这个没啥多大意义吧,防不胜防的

甜柠檬 2017-08-29 6 楼

每个公司和学校都有自己后缀的邮箱的,这个后缀名怎么能限制

归属感 2017-08-22 5 楼

其实真做到限制用户随便输入垃圾不存在的邮箱地址很难,可以说不可能的。只要尽量限制他输入垃圾邮箱,比如像浪际天涯 说的那样弄个下拉邮箱后缀来让用户选择,但是这样并不能保证邮箱是否存在的,但也只能这样限制了。俺给你提供一下类似下拉的例子

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();
}
}

清晨说ぺ晚安 2017-08-11 4 楼

验证邮箱首先肯定要格式验证,然后对其正确性检查一般网站有这几种:

一、限定邮箱的后缀,比如在前端只能让输入邮箱的用户名,而后缀用下拉列表框让用户选择,这里只限制比较常用的邮箱。现在比较少用了。

二、通过发验证信给用户注册的邮箱,用户注册完后需要到邮箱激活才能登录网站,这是比较常用的方式。

三、先让用户注册使用,当只使用一次并且超过一定时间没有登录的用户要求用户激活。

浮生未歇 2017-07-06 3 楼

验证邮箱是否真实只能发封激活邮件让用户去激活了。。
否则就算验证通过也不一定是他本人的。。

归属感 2017-03-29 2 楼

我觉得用程序去验证邮箱的证实性没有太大意义,比如 123456@qq.com 这样的邮箱检是确实存在的,但是也无法保证这个邮箱是我本人的。所以 一般的做法为 首先判断邮箱格式,接着是:通过往邮箱发送验证连接,判断是否点了指定的连接从而可以判断邮箱是否可用。
当然,如果验证 email 地址存在的话使用 checkdnsrr() 函数来验证,或 fsockopen(),等。

想挽留 2016-12-19 1 楼

除了验证邮箱格式外,检查邮箱的后缀名是否为通用常见的
搜狐的邮箱验证好像做了这个检查。