Skip to main content

No project description provided

Project description

PyRustify

PyRustify is a Python package written in Rust that verifies the email addresses.

Features

Feature Description
Syntax validation Checks if the email address has a valid syntax according to RFC 5322
MX lookup Checks if the email address has valid MX records and returns them if they exist
Email deliverability Checks if the email address can receive mail by performing a SMTP handshake with the mail server
Misc Checks if the email address is disposable, free or a role account using predefined lists of domains and prefixes

Installation

To install PyRustify, run the following command:

pip install pyrustify

Usage

To use PyRustify, you need to import it in your Python code and call either verify_email or verify_emails function. The verify_email function takes a single email address as an argument and returns a dictionary with the verification results. The verify_emails function takes a list of email addresses as an argument and returns a list of dictionaries with the verification results for each email address.

For example:

from pyrustify import verify_email, verify_emails

# Verify a single email address
response = verify_email('test@gmail.com') 
# Or a list of email addresses
response = verify_emails(['test@gmail.com','test2@gmail.com'])
print(response)
# {
    # "email": "test@gmail.com",
    # "has_valid_syntax": true,
    # "mx": {
        # "has_mx_records": true,
        # "mx_records": [
            # "alt1.gmail-smtp-in.l.google.com.",
            # "alt3.gmail-smtp-in.l.google.com.",
            # "alt4.gmail-smtp-in.l.google.com.",
            # "alt2.gmail-smtp-in.l.google.com.",
            # "gmail-smtp-in.l.google.com."
        # ]
    # },
    # "misc": {
        # "is_disposable": false,
        # "is_free": true,
        # "is_role_account": true
    # },
    # "smtp": {
        # "is_deliverable": false
    # }
# }

Configuration

You can configure PyRustify by setting the following environment variables:

  • FROM_EMAIL: The email address to use as the sender in the SMTP request. Default is user@example.org.
  • HELLO_NAME: The domain name to use in the SMTP request. Default is localhost.
  • SMTP_PORT: The port number to use for the SMTP request. Default is 25.
  • SMTP_TIMEOUT: The timeout in seconds for the SMTP request. Default is 10.
  • CHECK_SMTP: Whether to check the email deliverability by sending a SMTP request. Default is false.
  • CHECK_MX: Whether to check the MX records of the email address. Default is false.
  • CHECK_MISC: Whether to check the misc features of the email address. Default is false.
  • USE_SOCKS5: Whether to use a SOCKS5 proxy for the SMTP request. Default is false.
  • SOCKS5_HOST: The hostname or IP address of the SOCKS5 proxy server.
  • SOCKS5_PORT: The port number to use for the SOCKS5 proxy server.
  • SOCKS5_USERNAME: The username for the SOCKS5 proxy server. Optional.
  • SOCKS5_PASSWORD: The password for the SOCKS5 proxy server. Optional.

For example, you can set these variables in your terminal before running your Python script:

export CHECK_SMTP=true
export CHECK_MX=true
export CHECK_MISC=true

Credits

PyRustify uses the following sources for its miscellaneous checks:

Note

To check the SMTP deliverability, you need to have port 25 open on your machine. Some ISPs may block this port by default, so you may need to contact them or use a proxy server to bypass this restriction.

License

PyRustify is licensed under the MIT License. See LICENSE for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyrustify-0.2.1.tar.gz (26.8 kB view hashes)

Uploaded Source

Built Distributions

pyrustify-0.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pyrustify-0.2.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (3.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

pyrustify-0.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pyrustify-0.2.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (3.3 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

pyrustify-0.2.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

pyrustify-0.2.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (3.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

pyrustify-0.2.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

pyrustify-0.2.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

pyrustify-0.2.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pyrustify-0.2.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (3.3 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

pyrustify-0.2.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

pyrustify-0.2.1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (3.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

pyrustify-0.2.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

pyrustify-0.2.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

pyrustify-0.2.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pyrustify-0.2.1-pp37-pypy37_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (3.3 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

pyrustify-0.2.1-pp37-pypy37_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

pyrustify-0.2.1-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (3.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

pyrustify-0.2.1-pp37-pypy37_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

pyrustify-0.2.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

pyrustify-0.2.1-cp312-none-win_amd64.whl (1.7 MB view hashes)

Uploaded CPython 3.12 Windows x86-64

pyrustify-0.2.1-cp312-none-win32.whl (1.6 MB view hashes)

Uploaded CPython 3.12 Windows x86

pyrustify-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pyrustify-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (3.3 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

pyrustify-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.0 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

pyrustify-0.2.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (3.0 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

pyrustify-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

pyrustify-0.2.1-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pyrustify-0.2.1-cp312-cp312-macosx_10_7_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.12 macOS 10.7+ x86-64

pyrustify-0.2.1-cp311-none-win_amd64.whl (1.7 MB view hashes)

Uploaded CPython 3.11 Windows x86-64

pyrustify-0.2.1-cp311-none-win32.whl (1.6 MB view hashes)

Uploaded CPython 3.11 Windows x86

pyrustify-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pyrustify-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (3.3 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

pyrustify-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.0 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

pyrustify-0.2.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (3.0 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

pyrustify-0.2.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

pyrustify-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

pyrustify-0.2.1-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pyrustify-0.2.1-cp311-cp311-macosx_10_7_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.11 macOS 10.7+ x86-64

pyrustify-0.2.1-cp310-none-win_amd64.whl (1.7 MB view hashes)

Uploaded CPython 3.10 Windows x86-64

pyrustify-0.2.1-cp310-none-win32.whl (1.6 MB view hashes)

Uploaded CPython 3.10 Windows x86

pyrustify-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pyrustify-0.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (3.3 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

pyrustify-0.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.0 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

pyrustify-0.2.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (3.0 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

pyrustify-0.2.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.7 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

pyrustify-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

pyrustify-0.2.1-cp310-cp310-macosx_11_0_arm64.whl (1.6 MB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pyrustify-0.2.1-cp310-cp310-macosx_10_7_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.10 macOS 10.7+ x86-64

pyrustify-0.2.1-cp39-none-win_amd64.whl (1.7 MB view hashes)

Uploaded CPython 3.9 Windows x86-64

pyrustify-0.2.1-cp39-none-win32.whl (1.6 MB view hashes)

Uploaded CPython 3.9 Windows x86

pyrustify-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pyrustify-0.2.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (3.3 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

pyrustify-0.2.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.0 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

pyrustify-0.2.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (3.0 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

pyrustify-0.2.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.7 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

pyrustify-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

pyrustify-0.2.1-cp38-none-win_amd64.whl (1.7 MB view hashes)

Uploaded CPython 3.8 Windows x86-64

pyrustify-0.2.1-cp38-none-win32.whl (1.6 MB view hashes)

Uploaded CPython 3.8 Windows x86

pyrustify-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pyrustify-0.2.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (3.3 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

pyrustify-0.2.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.0 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

pyrustify-0.2.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (3.0 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

pyrustify-0.2.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.7 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARMv7l

pyrustify-0.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

pyrustify-0.2.1-cp37-none-win_amd64.whl (1.7 MB view hashes)

Uploaded CPython 3.7 Windows x86-64

pyrustify-0.2.1-cp37-none-win32.whl (1.6 MB view hashes)

Uploaded CPython 3.7 Windows x86

pyrustify-0.2.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

pyrustify-0.2.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (3.3 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ s390x

pyrustify-0.2.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.0 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ppc64le

pyrustify-0.2.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (3.0 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

pyrustify-0.2.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.7 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARMv7l

pyrustify-0.2.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page