我正在尝试构建一个专属于大学生的应用程序,并且需要使用所有有效的大学/学院电子邮件域列表来验证他们的电子邮件地址。
有谁知道哪里有列出所有这些电子邮件域的列表? (即someEmail@ucberkeley.edu)
更新 好的,更具体一点,我需要实际匹配电子邮件域。 即如果John Smith有@ ucla.edu,他应该只能通过@ ucla.edu电子邮件看到其他用户。
这就是为什么我不只是验证'.edu'电子邮件,而是需要一个有效'.edu'电子邮件域列表。 此外,我不能只使用学校的域名。我知道有些学校使用不同的电子邮件域名(例如,Sonoma.edu实际上通过gmail帐户使用'@ seawolf.sonoma.edu'作为他们的学生邮件) 希望澄清!
答案 0 :(得分:16)
此列表非常庞大 - 可能很有用: https://github.com/Hipo/university-domains-list
答案 1 :(得分:3)
我正在一个只允许.edu域名的网站上工作。我需要学校的名字向用户展示,所以我不能使用@JonBiere提供的解决方案。因此,我编制了一份清单。我从@DavidAdams提供的链接开始,在这里和那里找到了其他域名。我会把这个列表包含在这个答案中,但是正文仅限于30,000个字符,所以我把它here。随意用它做任何你想做的事。
我的计划是这样做,以便每当用户注册并确认他们的电子邮件地址时,我都会检查我的数据库,看看新注册的用户的电子邮件域是否已经在数据库中。如果不是,我会将其添加到数据库中。我只是将学校的名称与域相同(因此它将是domain:example.edu,name:example.edu)。然后,我将有一个cron作业,用于检查域和名称匹配的数据库中的任何条目。如果找到任何内容,我会收到一封电子邮件,指示我更新"名称"具有适当值的字段(例如"示例大学")。通过这种策略,大多数受欢迎的学校 应该已经有一个条目开头,当用户注册并确认他们的电子邮件地址时,更加模糊的学校将获得一个条目。
答案 2 :(得分:1)
我知道这个问题是在一段时间之前被问到的,但我最近正在努力解决与我正在构建的Web应用程序相同的问题。不是通过特定学校域验证用户,而是使用其他人建议的用户,并且仅允许.edu域。我假设您将注册用户存储在某个数据库中?如果是这样,你应该能够通过一些简单的应用程序逻辑实现你想要的。我正在使用实体框架,因此查询看起来像这样:
var userObj = Context.Users.Where(u => u.user == WebSecurity.CurrentUserId).FirstorDefault();
string email = userObj.email;
string[] words = email.Split('@');
var classmates = Context.Users.Where(u => u.email.EndsWith(words[1])).ToList();
同学变量现在将拥有所有具有相同学校电子邮件地址的用户。
希望这对至少有人有帮助!
答案 3 :(得分:0)
我找到了这个清单。它已经过时了,但由于大学里没有大量的流失,所以大多数都是最新的:http://doors.stanford.edu/universities.html 如果你最终建立了一个基于此的更新列表,我有兴趣看到它。