Skip to content

Commit

Permalink
Merge pull request #29 from mailsac/add_email_validation
Browse files Browse the repository at this point in the history
Add email validation
  • Loading branch information
mjmayer committed Jul 23, 2020
2 parents 20229ea + afd31b6 commit 3f90cf3
Show file tree
Hide file tree
Showing 8 changed files with 139 additions and 0 deletions.
2 changes: 2 additions & 0 deletions conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
# Used for tabbed code examples. https://github.com/djungelorm/sphinx-tabs
'sphinx_tabs.tabs'
]

# Add any paths that contain templates here, relative to this directory.
Expand Down
1 change: 1 addition & 0 deletions index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ Table of Contents
services/mailredirect
services/slack_webhook/slack_webhook
services/private_domains/private_domains
services/email_validation/email_validation


.. toctree::
Expand Down
2 changes: 2 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# This file instructs readthedocs to include these extensions in the build.
https://github.com/djungelorm/sphinx-tabs/releases/download/v1.1.13/sphinx-tabs-1.1.13.tar.gz
31 changes: 31 additions & 0 deletions services/email_validation/curl_email_validation.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
curl -H 'Mailsac-Key: YOUR_API_KEY_HERE' https://mailsac.com/api/validations/addresses/jimmy@mailsac.com

# Output from curl
{
"email": "jimmy@mailsac.com",
"domain": "mailsac.com",
"isValidFormat": true,
"local": "jimmy",
"isDisposable": true,
"disposableDomains": [
"ledoktre.com",
"mailsac.com",
"totalvista.com",
"slothmail.net"
],
"aliases": [
"ledoktre.com",
"mailsac.com",
"totalvista.com",
"52.41.136.113",
"slothmail.net",
"aiwa.fm",
"tztmax.com",
"cs.msdc.co",
"zeie.xyz",
"yinpinpin.club",
"jadeant.top",
"dylans.email",
"msdc.co"
]
}
43 changes: 43 additions & 0 deletions services/email_validation/email_validation.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
.. _doc_email_validation:

.. _Mailsac website: https://mailsac.com/email-validation

Email Validation
================

Email validation confirms that the provided email address is in a valid format
and the email address is not associated with a disposable email service.
Validations can be done using the `Mailsac website`_ or REST API.

Additional information about the REST API endpoint for Email Validation
is available in the `REST API Documentation
<https://mailsac.com/docs/api/#email-validations-api>`_. The REST API endpoint
supports bulk validation of up to 50 email addresses.

Examples
--------

.. tabs::
.. tab:: Mailsac Website

.. figure:: website_email_validation.gif

Email validation using the `Mailsac website`_

.. tab:: curl

.. literalinclude:: curl_email_validation.txt
:language: bash
:caption: Validate email address

.. tab:: Node.js Javascript

.. literalinclude:: nodejs_email_validation.js
:language: javascript
:caption: Validate email address

.. tab:: Python

.. literalinclude:: python_email_validation.py
:language: python
:caption: Validate email address
30 changes: 30 additions & 0 deletions services/email_validation/nodejs_email_validation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
const superagent = require('superagent')

superagent
.get('https://mailsac.com/api/validations/addresses/jimmy@mailsac.com')
.set('Mailsac-Key', 'YOUR_API_KEY_HERE')
.then((validation) => {
console.log(validation.body)
})
.catch(err => {
console.log(err.message)
})
/*
{
email: 'jimmy@mailsac.com',
domain: 'mailsac.com',
isValidFormat: true,
local: 'jimmy',
isDisposable: true,
disposableDomains: [ 'ledoktre.com', 'mailsac.com', 'totalvista.com', 'slothmail.net' ],
aliases: [
'ledoktre.com', 'mailsac.com',
'totalvista.com', '52.41.136.113',
'slothmail.net', 'aiwa.fm',
'tztmax.com', 'cs.msdc.co',
'zeie.xyz', 'yinpinpin.club',
'jadeant.top', 'dylans.email',
'msdc.co'
]
}
*/
30 changes: 30 additions & 0 deletions services/email_validation/python_email_validation.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import requests
from pprint import pprint

headers = {'Mailsac-Key': 'YOUR_API_KEY_HERE'}
url = 'https://mailsac.com/api/validations/addresses/jimmy@mailsac.com'

r = requests.get(url, headers=headers)
pprint(r.json())
"""
{'aliases': ['ledoktre.com',
'totalvista.com',
'52.41.136.113',
'mailsac.com',
'slothmail.net',
'tztmax.com',
'aiwa.fm',
'zeie.xyz',
'yinpinpin.club',
'beautyoa.com',
'lqpakswoowkw729292929292929.msdc.co'],
'disposableDomains': ['ledoktre.com',
'totalvista.com',
'mailsac.com',
'slothmail.net'],
'domain': 'mailsac.com',
'email': 'jimmy@mailsac.com',
'isDisposable': True,
'isValidFormat': True,
'local': 'jimmy'}
""""
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 3f90cf3

Please sign in to comment.