首页 > 如何通过注册的邮箱号得到该邮箱的地址?

如何通过注册的邮箱号得到该邮箱的地址?

我想用查表对应,比如:
a@163.com => mail.163.com
b@gmail.com =>www.gmail.com
c@vip.sina.com=>vip.sina.com
这三种能不能盖全?

还是用正则?


个人以为模拟收发邮件的时候的过程比较好。即通过邮箱后头的域名查询该域名绑定的MX地址既可知道到底用的是什么邮箱服务商了。

下面以PHP代码和我自己的域名邮箱为例,写一个示例吧:

    $mail = "i@imnerd.org";
    $t = explode('@', $mail);
    $domain = end($t);
    $mx = dns_get_record($domain, 'DNS_MX');
    echo $mx['target'];
    //googlemail.com

穷举常用的邮箱并找出他们的主页,做成map配置数据存起来。程序判断如果domain.com在穷举map里没有的,直接 mail.domain.com


假如你想临时统计一下(假设字段名为email,数据库为mysql):

select distinct substring(email, locate('@', email)+1) from User;

假如你要在业务中实现,不要用上面这种效率不高的方式,建议在用户注册时,将@符号后面的邮箱域名拆分出来另外用一个表存下来(加个唯一索引),需要的时候取用。


$mail = "xxx@abc.com";
$t = explode('@', $mail);
$domain = end($t);
echo 'mail.'.$domain;

quoracms的邮件发送原理就是这样处理的

【热门文章】
【热门文章】