Skip to content

This tool is for someone looking for a simple fast program that takes in a CSV file of email addresses, calls the SparkPost recipient validation API, and outputs a CSV file with the validation results of those emails

License

Notifications You must be signed in to change notification settings

ZSamuels28/ASync-Recipient-Validation-V2

Repository files navigation

Sign up for a SparkPost account and visit our Developer Hub for even more content.

SparkPost ASyncRecipientValidation

Build Status

Easy installation

Firstly ensure you have node:

Either by downloading directly and installing via: https://nodejs.org/en/download/

Or by using the following instructions: https://treehouse.github.io/installation-guides/mac/node-mac.html

Get the project, and install dependencies.

git clone https://github.com/ZSamuels28/ASyncRecipientValidation-V2.git
cd ASyncRecipientValidation-V2
npm install

You can now type node ./app.js -h and see usage info.

Pre-requisites

Set the following environment variables by creating a variables.env file within the ASyncRecipientValidation/config directory with the following information. Note these are case-sensitive:

SPARKPOST_HOST
    The URL of the SparkPost API service you're using. Defaults to https://api.sparkpost.com.

SPARKPOST_API_KEY
    API key on your SparkPost account, with Recipient Validation rights.

The variables.env file should look something like the following:

# .env
SPARKPOST_API_KEY=1234567890ABCDEFGHIJKLMNOPQRSTUVXYZ
SPARKPOST_HOST=https://api.sparkpost.com

Usage

node ./app.js -h
usage: ./app.js [-h] [-i INFILE] [-o OUTFILE]

Validate recipients with SparkPost. Reads from specified input CSV file.
Results to specified output file. Error rows are exported to the ErrorLog.csv file.

optional arguments:
  -h, --help            show this help message and exit
  -i INFILE, --infile INFILE
                        filename to read email recipients from (in .CSV
                        format)
  -o OUTFILE, --outfile OUTFILE
                        filename to write validation results to (in .CSV
                        format)

Concurrency

Note that concurrency limit can be set in the validateRecipients.js file by changing the following parameter const CONCURRENCY_LIMIT = [ConcurrencyLimit]. This will vary based on computing power.

File input / output

Use the -i and -o options to specify input and output files.

An example input file is included in the project (valtest.csv) and can be seen below:

Kristylucky2914254@test.yahoo.ca
Renee_E3291294@test.earthlink.net
Todddoubtfu123l@test.124frontiernet.net
fashion126K142esari@test.gmail.com
shyTrevor723295234@test.zonnet.nl

The output file follows the same form as the SparkPost web application. Note that all your address results are reported, not just the rejected ones (unlike the web UI validation).

Validations are made via an asynchronous API call so speed will be determined on machine capability.

Progress

Progress of email validations will be shown in the console in the following form: Done with [CompletedCalls] / [TotalValidEmails]

When all APIs are completed, the following will be shown if all emails are valid: All emails successfully validated in X seconds

See Also

SparkPost Developer Hub

Recipient Validation

Recipient Validation SparkPost API endpoint

About

This tool is for someone looking for a simple fast program that takes in a CSV file of email addresses, calls the SparkPost recipient validation API, and outputs a CSV file with the validation results of those emails

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published