pross/disposable-email-domains

此软件包最新版本(1.3)的许可证信息不可用。

此仓库包含一组常用于注册虚假用户以垃圾邮件或滥用某些服务的可丢弃和临时电子邮件地址域名。

1.3 2016-12-14 13:15 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:36:46 UTC


README

Licensed under CC0

此仓库包含一组可丢弃和临时电子邮件地址域名,常用于注册虚假用户以垃圾邮件或滥用某些服务。

最初收集这些数据是为了过滤https://usegalaxy.org 的新用户注册,后来与其他在线找到的列表合并。我无法保证这些域名现在都可以被认为是可丢弃的,但它们在某个时刻可能曾是。

白名单

文件 whitelist.conf 收集了一些常被识别为可丢弃但实际上不是的电子邮件域名。

示例用法

Python

blacklist = ('disposable_email_blacklist.conf')
blacklist_content = [line.rstrip() for line in blacklist.readlines()]
if email.split('@')[1] in blacklist_content:
    message = "Please enter your permanent email address."
    return (False, message)
else:
    return True

由于 @di 的贡献,作为 PyPI 模块 可用。

>>> from disposable_email_domains import blacklist
>>> 'bearsarefuzzy.com' in blacklist
True

PHP 由 @txt3rob 和 @deguif 贡献

function is_temp_mail($mail) {
    $mail_domains_ko = file('disposable_email_blacklist.conf', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

    //Need to ensure the mail contains an @ to avoid undefined offset
    return in_array(explode('@', $mail)[1], $mail_domains_ko);
}

Ruby on Rails 由 @MitsunChieh 贡献

在资源模型中,通常是在 user.rb 中。

before_validation :reject_email_blacklist

def reject_email_blacklist
  blacklist = File.read('config/disposable_email_blacklist.conf').split("\n")

  if blacklist.include?(email.split('@')[1])
    errors[:email] << 'invalid email'
    return false
  else
    return true
  end
end

贡献

请自由创建带有添加内容或请求删除某些域(附上理由)的 PR。

使用

$ cat disposable_email_blacklist.conf your_file | tr '[:upper:]' '[:lower:]' | sort -f | uniq -i > new_file.conf

$ comm -23 new_file.conf whitelist.conf > disposable_email_blacklist.conf

以添加相同格式的另一个文件的内容(只有新行上的二级域名,不带 @)。它还转换为大写字母,排序,删除重复项并删除白名单中的域名。

变更日志

  • 2016年12月6日 - 由于 @di 的贡献,作为 PyPI 模块 可用。

  • 2016年7月27日 - 将所有域名转换为二级域名。这意味着从此提交开始,实现者应正确匹配二级域名名称,即 @xxx.yyy.zzz 应匹配黑名单中的 yyy.zzz,更多信息请参考 #46