pescheckit/python-disposable
GitHub: pescheckit/python-disposable
一个纯离线、自动更新的 Python 库,用于快速判断邮箱地址是否属于一次性或临时邮箱域名。
Stars: 1 | Forks: 0
# python-disposable
一个轻量级的 Python 包,用于检测一次性/临时电子邮件地址。内置来自 [disposable/disposable-email-domains](https://github.com/disposable/disposable-email-domains) 的 **72,000+ 个域名**,每日更新——运行时无需网络调用。
## 安装
```
pip install python-disposable
```
## 用法
### 基础检查
```
from disposable_email import is_disposable, is_valid
is_disposable("user@mailinator.com") # True
is_disposable("user@gmail.com") # False
# 也适用于裸域
is_disposable("guerrillamail.com") # True
# Inverse
is_valid("user@gmail.com") # True
```
### 严格模式
严格模式还会标记灰名单域名——即那些允许匿名注册但并非纯粹一次性的服务(例如一些免费电子邮件提供商)。
```
is_disposable("example.com", strict=True)
is_valid("example.com", strict=True)
```
### 子域名处理
子域名会自动解析为其父域名。
```
is_disposable("mail.mailinator.com") # True
is_disposable("a.b.guerrillamail.com") # True
```
### 获取完整域名集合
```
from disposable_email import get_domains
domains = get_domains() # frozenset of 72k+ domains
domains_strict = get_domains(strict=True) # frozenset of strict list
```
### 域名数量
```
from disposable_email import domain_count
domain_count() # 72170
domain_count(strict=True) # 26468
```
## Django 示例
```
from django import forms
from disposable_email import is_disposable
class RegisterForm(forms.Form):
email = forms.EmailField()
def clean_email(self):
email = self.cleaned_data["email"]
if is_disposable(email):
raise forms.ValidationError("Disposable email addresses are not allowed.")
return email
```
## API 参考
| 函数 | 描述 |
|----------|-------------|
| `is_disposable(email_or_domain, strict=False)` | 如果电子邮件/域名是一次性的,则返回 `True` |
| `is_valid(email_or_domain, strict=False)` | 如果电子邮件/域名**不是**一次性的,则返回 `True` |
| `get_domains(strict=False)` | 返回包含所有已知一次性域名的完整 `frozenset` |
| `domain_count(strict=False)` | 返回内置域名的数量 |
## 数据来源
域名列表源自 [disposable/disposable-email-domains](https://github.com/disposable/disposable-email-domains) 并在发布时内置。上游列表通过对 40 多个来源进行自动化抓取,每天进行更新。
本软件包每 4 小时检查一次上游更新,并在检测到更改时自动将新版本发布到 PyPI。
## 许可证
MIT — 详见 [LICENSE](LICENSE)。
标签:API, Django, ESC4, MX记录, OSINT, pip, Python, 一次性邮箱, 临时邮箱, 反垃圾邮件, 反欺诈, 域名检测, 数据验证, 无后门, 注册风控, 灰名单, 电子邮件, 离线检测, 网络安全, 表单验证, 逆向工具, 邮箱域名, 邮箱过滤, 隐私保护, 黑名单