mailboxvalidator 1.1.1

Email verification package for Rust using MailboxValidator API. It validates if the email is valid, from a free provider, contains high-risk keywords, whether it's a catch-all address and so much more.
Documentation
![Crates.io](https://img.shields.io/crates/d/mailboxvalidator)

# MailboxValidator Rust package


This Rust package enables user to easily validate if an email address is valid, a type of disposable email or free email.

This module can be useful in many types of projects, for example

- to validate an user's email during sign up
- to clean your mailing list prior to email sending
- to perform fraud check
- and so on

# Installation


Just add `mailboxvalidator = "1.1.0"` into your *Cargo.toml*.

# Dependencies


An API key is required for this module to function.

Go to https://www.mailboxvalidator.com/plans#api to sign up for FREE API plan and you'll be given an API key.

# Functions


## validate_email(email_address)


Performs email validation on the supplied email address.

### Return Fields


| Field Name             | Description                                                  |
| ---------------------- | ------------------------------------------------------------ |
| email_address          | The input email address.                                     |
| domain                 | The domain of the email address.                             |
| is_free                | Whether the email address is from a free email provider like Gmail or Hotmail. Return values: True, False |
| is_syntax              | Whether the email address is syntactically correct. Return values: True, False |
| is_domain              | Whether the email address has a valid MX record in its DNS entries. Return values: True, False, -  (- means not applicable) |
| is_smtp                | Whether the mail servers specified in the MX records are responding to connections. Return values: True, False, -  (- means not applicable) |
| is_verified            | Whether the mail server confirms that the email address actually exist. Return values: True, False, -  (- means not applicable) |
| is_server_down         | Whether the mail server is currently down or unresponsive. Return values: True, False, -  (- means not applicable) |
| is_greylisted          | Whether the mail server employs greylisting where an email has to be sent a second time at a later time. Return values: True, False, -  (- means not applicable) |
| is_disposable          | Whether the email address is a temporary one from a disposable email provider. Return values: True, False, -  (- means not applicable) |
| is_suppressed          | Whether the email address is in our blacklist. Return values: True, False, -  (- means not applicable) |
| is_role                | Whether the email address is a role-based email address like [admin@example.net]mailto:admin@example.net or [webmaster@example.net]mailto:webmaster@example.net. Return values: True, False, -  (- means not applicable) |
| is_high_risk           | Whether the email address contains high risk keywords. Return values: True, False, -  (- means not applicable) |
| is_catchall            | Whether the email address is a catch-all address. Return values: True, False, Unknown, -  (- means not applicable) |
| mailboxvalidator_score | Email address reputation score. Score > 0.70 means good; score > 0.40 means fair; score <= 0.40 means poor. |
| time_taken             | The time taken to get the results in seconds.                |
| status                 | Whether our system think the email address is valid based on all the previous fields. Return values: True, False |
| credits_available      | The number of credits left to perform validations.           |
| error_code             | The error code if there is any error. See error table in the below section. |
| error_message          | The error message if there is any error. See error table in the below section. |

## is_disposable_email(email_address)


Check if the supplied email address is from a disposable email provider.

### Return Fields


| Field Name        | Description                                                  |
| ----------------- | ------------------------------------------------------------ |
| email_address     | The input email address.                                     |
| is_disposable     | Whether the email address is a temporary one from a disposable email provider. Return values: True, False |
| credits_available | The number of credits left to perform validations.           |
| error_code        | The error code if there is any error. See error table in the below section. |
| error_message     | The error message if there is any error. See error table in the below section. |

## is_free_email(email_address)


Check if the supplied email address is from a free email provider.

### Return Fields


| Field Name        | Description                                                  |
| ----------------- | ------------------------------------------------------------ |
| email_address     | The input email address.                                     |
| is_free           | Whether the email address is from a free email provider like Gmail or Hotmail. Return values: True, False |
| credits_available | The number of credits left to perform validations.           |
| error_code        | The error code if there is any error. See error table in the below section. |
| error_message     | The error message if there is any error. See error table below. |

# Sample Codes


## Validate email


```rust
use mailboxvalidator;

let validation_result = mailboxvalidator::validate_email("example@example.com",PASTE_API_KEY_HERE);

match validation_result {
    Ok(num) => {
        let ok_result = num;
        println!("{:#?}", ok_result);
    },
    Err(err) => println!("{:#?}", err),
};
```

## Check if an email is from a disposable email provider


```rust
use mailboxvalidator;

let validation_result = mailboxvalidator::is_disposable_email("example@example.com",PASTE_API_KEY_HERE);

match validation_result {
    Ok(num) => {
        let ok_result = num;
        println!("{:#?}", ok_result);
    },
    Err(err) => println!("{:#?}", err),
};
```

## Check if an email is from a free email provider


```rust
use mailboxvalidator;

let validation_result = mailboxvalidator::is_free_email("example@example.com",PASTE_API_KEY_HERE);

match validation_result {
    Ok(num) => {
        let ok_result = num;
        println!("{:#?}", ok_result);
    },
    Err(err) => println!("{:#?}", err),
};
```

# Errors


| error_code | error_message         |
| ---------- | --------------------- |
| 10000        | Missing parameter.    |
| 10001        | API key not found.    |
| 10002        | API key disabled.     |
| 10003        | API key expired.      |
| 10004        | Insufficient credits. |
| 10005        | Unknown error.        |

# Copyright


Copyright (C) 2018-2024 by MailboxValidator.com, [support@mailboxvalidator.com](mailto:support@mailboxvalidator.com)