Emailvet
Provider-aware email address canonicalization for Python.
canon_email("a.b.c.d+123@gmail.com")
# "abcd@gmail.com"
Install
pip install emailvet
Usage
from emailvet import canon_email, analyze_email
print(canon_email("a.b.c.d+123@gmail.com"))
# abcd@gmail.com
print(canon_email("John.Smith@EXAMPLE.COM"))
# John.Smith@example.com
Supported providers
Emailvet currently includes provider-specific rules for:
- Gmail / Googlemail
- Outlook.com
- Proton Mail
- Yandex Mail
- Fastmail-owned domains
Unknown providers are handled conservatively: only the domain is lowercased.
Analysis
Use analyze_email() when you want to see what Emailvet changed:
result = analyze_email("A.B+shop@googlemail.com")
print(result.canonical)
print(result.provider)
print(result.rules_applied)
Example result:
canonical: ab@gmail.com
provider: gmail
rules_applied:
- lowercase_local_part
- strip_subaddress
- ignore_dots
- canonicalize_domain
Rules and updates
Provider rules are bundled with the package, so normal canonicalization works entirely offline.
import emailvet
print(emailvet.rules_version())
print(emailvet.rules_info())
To install a newer trusted providers.json rules file:
emailvet.update_rules("https://example.com/providers.json")
You can also set EMAILVET_RULES_URL and call emailvet.update_rules() without passing a URL.
License
MIT
Metadata
Release files for emailvet 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| emailvet-0.1.0.tar.gz | 10.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| emailvet-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.2 kB
Release files / emailvet-0.1.0.tar.gz
| Download URL | emailvet-0.1.0.tar.gz |
|---|---|
| Size | 10.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
df25ab3a0fa40a3dcd0d5ac36e82ffab17bea960354a0a4c032fee8e8d1ad282
|
|
BLAKE2b-256 checksum How to use checksums |
3d1b5838f46efac5ace1927c7d189a5821b2ccd6ea619d993484388a50a99e28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / emailvet-0.1.0-py3-none-any.whl
| Download URL | emailvet-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cb34647b551852aae45e6967edc16e4e13702c7c9879308bcebba3465c9ccf57
|
|
BLAKE2b-256 checksum How to use checksums |
9cce356f452537428a2d19490e592adee36965fdb0db97db8ee84183babdf99a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Security for emailvet 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.