Skip to main content

This is the official python wrapper for the Emailable API.

Project description

Emailable Python Library

Version Build Status Maintainability

This is the official python wrapper for the Emailable API.

Documentation

See the Python API docs.

Installation

pip install emailable

Usage

Authentication

The Emailable API requires either an API key or an access token for authentication. API keys can be created and managed in the Emailable Dashboard.

An API key can be set globally for the Emailable client:

client = emailable.Client('your_api_key')

Or, you can specify an api_key or an access_token with each request:

# set api_key at request time
client.verify(api_key='your_api_key')

# set access_token at request time
client.verify(access_token='your_access_token')

Verification

# verify an email address
response = client.verify('evan@emailable.com')
response.state
=> 'deliverable'

# additional parameters are available. see API docs for more info.
client.verify('evan@emailable.com', smtp=False, accept_all=True, timeout=25)

Slow Email Server Handling

Some email servers are slow to respond. As a result, the timeout may be reached before we are able to complete the verification process. If this happens, the verification will continue in the background on our servers. We recommend sleeping for at least one second and trying your request again. Re-requesting the same verification with the same options will not impact your credit allocation within a 5 minute window.

A slow response will return with a 249 status code.

response = client.verify('slow@example.com')
response.status_code
=> 249
response.message
=> 'Your request is taking longer than normal. Please send your request again.'

Batch Verification

Start a batch

emails = ['evan@emailable.com', 'support@emailable.com', ...]
response = client.batch(emails)
response.id
=> '5cff27400000000000000000'

# you can optionally pass in a callback url that we'll POST to when the
# batch is complete.
response = client.batch(emails, {'url': 'https://emailable.com/'})

Get the status / results of a batch

To get the status of a batch call batch_status with the batch's id. If your batch is still being processed, you will receive a message along with the current progress of the batch. When a batch is completed, you can access the results in the emails attribute.

response = client.batch_status('5cff27400000000000000000')

# if your batch is still running
response.processed
=> 1
response.total
=> 2
response.message
=> 'Your batch is being processed.'

# if your batch is complete
response.emails
=> [{'email': 'evan@emailable.com', 'state': 'deliverable'...}, {'email': 'support@emailable.com', 'state': 'deliverable'...}...]

# get the counts
response.total_counts
=>{'deliverable': 2, 'undeliverable': 0 ...}
response.reason_counts
=>{'accepted_email': 2, 'rejected_email': 0 ...}

Development

Tests can be run with the following command:

pytest

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/emailable/emailable-python.

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

emailable-3.1.0.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

emailable-3.1.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file emailable-3.1.0.tar.gz.

File metadata

  • Download URL: emailable-3.1.0.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.0

File hashes

Hashes for emailable-3.1.0.tar.gz
Algorithm Hash digest
SHA256 e32d1d1f74bb1f4f3a90cc97e9b4ae17dfd0bca5151b4f7f1335a5faa945a1dd
MD5 c2336886543bc775bd8dd82722ac020d
BLAKE2b-256 7dbec4ec495319905e13bd10d8c5c73f573c65bb3c39c116779e2e614168b029

See more details on using hashes here.

File details

Details for the file emailable-3.1.0-py3-none-any.whl.

File metadata

  • Download URL: emailable-3.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.0

File hashes

Hashes for emailable-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2dbacf2d2664a459c1eb5648b6cf4275aa9910e5ccd23880b07c9b4b86038c6c
MD5 eae233661ae6cf3d6c985f17e37f625f
BLAKE2b-256 354df503de6d13034497294e21f9934add82704b561ea9b52372df94b4068423

See more details on using hashes here.

Supported by

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