Reference Guide#
2-Step Configuration#
Follow the instruction to get the app and details about installation in Native App Installation
Events and Logs#
To observe and troubleshoot app behavior, you can enable Logging and Event Tracing for your account and share the app logs with us. For more information, please check Snowflake Documentations below:
Stored Procedures#
VERIFY_SINGLE_EMAIL#
The VERIFY_SINGLE_EMAIL
procedure validates and standardizes individual email using the Global Email Web Service.
It returns the verification results in JSON format or optional output table, supporting optional fields for flexible and accurate email validation.
There are 2 ways to verify an email in Native App Global Email for Snowflake:
Fill in the Verification Form on the Native App interface
Manually run a Snowflake SQL script to call the stored procedure
Verification Form#
In your Snowflake account, select Data Products > Apps > GLOBAL_EMAIL > Menu > Verify Single Email > Try It Now > Start Verifying
Input Example#
Enter the License Key and email you want to verify
Select Verify
Result will be displayed on the left sidebar
Output Examples#
Verify a single email
Result will be displayed in JSON format.

Verify a single email and insert the result to an output table
You can choose to insert the result to an output table for later use with our Default Output Fields

Verify a single email with selected output table fields
You can choose which fields to be included in the output table.

Verify a single email with ‘ALL’ output table fields
You can choose to have All fields to be included in the output table.

SQL Script#
Manually call our procedures using a Snowflake SQL script.
Setup and Sample Script#
Select Projects > Worksheets on the left panel in your Snowflake account
You can find the installed application database in Projects > Worksheets > Databases.
Select
+
to create a new SQL worksheetCopy and paste the usage example below onto your worksheet to call the stored procedure, replace with your values
Check Input Parameters for more information.
/****************************************************************** Global Email - Verify Single Email Usage Example ******************************************************************/ USE GLOBAL_EMAIL.CORE; /* Verify a single email, replace with your values*/ CALL VERIFY_SINGLE_EMAIL( LICENSE => '<REPLACE_WITH_YOUR_LICENSE_KEY>' ,EMAIL => 'test@yahoo.com' ,OPTIONS => '<OptionName_1:Parameter,OptionName_2:Parameter>' ,OUTPUT_TABLE_NAME => '<OUTPUT_TABLE_NAME>' ,OUTPUT_TABLE_FIELDS => '<Field_1,Field_2>' ); /* Result view, if Output Table is provided */ SELECT * FROM <OUTPUT_TABLE_NAME>;
Example of a stored procedure call from a SQL worksheet. Highlight the SQL statement then select Run button on the right top corner.
Input Parameters#
Below is the input parameters information for calling stored procedure VERIFY_SINGLE_MAIL
.
Parameter |
Data Type |
Description |
Example |
---|---|---|---|
LICENSE |
VARCHAR |
Required.
The License Key with Credits issued by Melissa. |
REPLACE_WITH_YOUR_LICENSE_KEY |
VARCHAR |
Required. |
test@yahoo.com |
|
OPTIONS |
VARCHAR |
Required. Empty string is accepted. |
verifymailbox:express |
OUTPUT_TABLE_NAME |
VARCHAR |
Required. Empty string is accepted. |
OUTPUT_TABLE_NAME |
OUTPUT_TABLE_FIELDS |
VARCHAR |
Required. Case-sensitive. Empty string is accepted. Fields in the output table; fields separated by comma(,) if not ‘All’. Field name must match in one or all in an example list. |
RecordID, |
Output Examples#
Some common examples are shown below.
Verify a single email
/******************************************************************
Global Email - Verify Single Email Usage Example
******************************************************************/
USE GLOBAL_EMAIL.CORE;
/* Verify a single email, replace with your values*/
CALL VERIFY_SINGLE_EMAIL(
LICENSE => '<REPLACE_WITH_YOUR_LICENSE_KEY>'
,EMAIL => 'test@yahoo.com'
,OPTIONS => ''
,OUTPUT_TABLE_NAME => ''
,OUTPUT_TABLE_FIELDS => ''
);
Output will be displayed in JSON format.

Verify a single email and insert the result into an output table
If OUTPUT_TABLE_NAME is provided, a new table will be created if not already existed in the same application database with Default Output Fields.
Call stored procedure
VERIFY_SINGLE_EMAIL
./* Verify a single email, replace with your values*/ CALL VERIFY_SINGLE_EMAIL( LICENSE => '<REPLACE_WITH_YOUR_LICENSE_KEY>' ,EMAIL => 'test@yahoo.com' ,OPTIONS => '' ,OUTPUT_TABLE_NAME => '<OUTPUT_TABLE_NAME>' ,OUTPUT_TABLE_FIELDS => '' );
Query output table.
SELECT * FROM <OUTPUT_TABLE_NAME>;
Verify a single email with selected output fields
Call stored procedure
VERIFY_SINGLE_EMAIL
.CALL VERIFY_SINGLE_EMAIL( LICENSE => '<REPLACE_WITH_YOUR_LICENSE_KEY>' ,EMAIL => 'test@yahoo.com' ,OPTIONS => '' ,OUTPUT_TABLE_NAME => '<OUTPUT_TABLE_NAME>' ,OUTPUT_TABLE_FIELDS => '<Field_1,Field_2>' );
Query output table.
SELECT * FROM <OUTPUT_TABLE_NAME>;
Verify a single email with ‘ALL’ output table fields
Call stored procedure
VERIFY_SINGLE_EMAIL
.CALL VERIFY_SINGLE_EMAIL( LICENSE => '<REPLACE_WITH_YOUR_LICENSE_KEY>' ,EMAIL => 'test@yahoo.com' ,OPTIONS => '' ,OUTPUT_TABLE_NAME => '<OUTPUT_TABLE_NAME>' ,OUTPUT_TABLE_FIELDS => 'All' );
Query output table.
SELECT * FROM <OUTPUT_TABLE_NAME>;
VERIFY_MULTIPLE_EMAILS#
The VERIFY_MULTIPLE_EMAILS
procedure processes email records in batches,
validating and standardizing key components using the Global Email API.
It can handle tables of any size, returning the results in a specified output table and supports optional fields for flexible, accurate email validation.
Requirements#
To use this feature, you need to prepare an input table in Snowflake beforehand referencing our default input fields below.
Default Input Fields#
Column Name |
Data Type |
Description |
---|---|---|
RECORDID |
NUMBER |
Required. |
VARCHAR |
Required. |
SQL Script#
You can find the installed application database in Projects > Worksheets > Databases.

Setup and Sample Script#
The step-by-step example below shows how to use our stored procedure VERIFY_MULTIPLE_EMAILS
with the default values.
Replace with your values.
Step 0 - Prepare an input table
Assume that the input table has the signature below:
CREATE TABLE IF NOT EXISTS <INPUT_DATABASE>.<INPUT_SCHEMA>.<INPUT_TABLE> ( RecId NUMBER(38,0) autoincrement start 1 increment 1 noorder ,Email VARCHAR DEFAULT ('') ) CLUSTER BY (RecId);
This input table has different column names from the Default Input Fields. Mapping column names in Step 2 is necessary for the program to get the correct parameters.
Step 1 - Grant Required Privileges
Ensure the application has the necessary access to the input table. Replace placeholders with your actual values.
/********************************************************************** Global Email - Verify Multiple Emails Usage Example **********************************************************************/ /* Grant usage on input table to the application, replace with your values.*/ GRANT USAGE ON DATABASE <INPUT_DATABASE> TO APPLICATION GLOBAL_EMAIL; GRANT USAGE ON SCHEMA <INPUT_DATABASE>.<INPUT_SCHEMA> TO APPLICATION GLOBAL_EMAIL; GRANT SELECT ON TABLE <INPUT_DATABASE>.<INPUT_SCHEMA>.<INPUT_TABLE> TO APPLICATION GLOBAL_EMAIL;
Step 2 - Map Input Columns with the Default Input Fields
Set the required parameters and map your input columns to our Default Input Fields.
You can skip the mapping step if your input table matches our Default Input Fields exactly.
USE GLOBAL_EMAIL.CORE; /* Set input parameters, replace with your values */ SET LICENSE = '<REPLACE_WITH_YOUR_LICENSE_KEY>'; SET OPTIONS = '<OptionName_1:Parameter,OptionName_2:Parameter>'; SET INPUT_TABLE_NAME = '<INPUT_DATABASE>.<INPUT_SCHEMA>.<INPUT_TABLE_NAME>'; SET OUTPUT_TABLE_NAME = '<OUTPUT_TABLE_NAME>'; SET OUTPUT_TABLE_FIELDS = '<Field_1,Field_2>'; /* Map your input columns with our default input fields, replace with your actual column names if they differ from our default values */ /* For optional columns, uncomment/comment each line for the needed one. */ CREATE OR REPLACE TEMPORARY VIEW INPUT_RECORDS AS SELECT RecId AS RECORDID ,COALESCE(EMAIL, '') AS EMAIL FROM IDENTIFIER($INPUT_TABLE_NAME);
Step 3 - Call stored procedure
VERIFY_MULTIPLE_EMAILS
to verify your dataCheck Input Parameters for more information.
/* Call the verify procedure */ CALL VERIFY_MULTIPLE_EMAILS( LICENSE => $LICENSE ,OPTIONS => $OPTIONS ,INPUT_TABLE_NAME => TABLE(INPUT_RECORDS) ,OUTPUT_TABLE_NAME => $OUTPUT_TABLE_NAME ,OUTPUT_TABLE_FIELDS => $OUTPUT_TABLE_FIELDS -- Size limit for variables is 256. If your input string exceeds the limit, parse the string directly in the call -- e.g. OUTPUT_TABLE_FIELDS => 'Field_1,Field_2' ); /* Output table view */ SELECT TOP 100 * FROM IDENTIFIER($OUTPUT_TABLE_NAME) ORDER BY (RECORDID);
Full SQL Script
/**********************************************************************
Global Email - Verify Multiple Emails Usage Example
**********************************************************************/
/* Grant usage on input table to the application, replace with your values.*/
GRANT USAGE ON DATABASE <INPUT_DATABASE> TO APPLICATION GLOBAL_EMAIL;
GRANT USAGE ON SCHEMA <INPUT_DATABASE>.<INPUT_SCHEMA> TO APPLICATION GLOBAL_EMAIL;
GRANT SELECT ON TABLE <INPUT_DATABASE>.<INPUT_SCHEMA>.<INPUT_TABLE> TO APPLICATION GLOBAL_EMAIL;
USE GLOBAL_EMAIL.CORE;
/* Set input parameters, replace with your values */
SET LICENSE = '<REPLACE_WITH_YOUR_LICENSE_KEY>';
SET OPTIONS = '<OptionName_1:Parameter,OptionName_2:Parameter>';
SET INPUT_TABLE_NAME = '<INPUT_DATABASE>.<INPUT_SCHEMA>.<INPUT_TABLE_NAME>';
SET OUTPUT_TABLE_NAME = '<OUTPUT_TABLE_NAME>';
SET OUTPUT_TABLE_FIELDS = '<Field_1,Field_2>';
/* Map your input columns with our default input fields, replace with your actual column names if they differ from our default values */
CREATE OR REPLACE TEMPORARY VIEW INPUT_RECORDS AS
SELECT
RecId AS RECORDID
,COALESCE(EMAIL, '') AS EMAIL
FROM IDENTIFIER($INPUT_TABLE_NAME);
/* Call the verify procedure */
CALL VERIFY_MULTIPLE_EMAILS(
LICENSE => $LICENSE
,OPTIONS => $OPTIONS
,INPUT_TABLE_NAME => TABLE(INPUT_RECORDS)
,OUTPUT_TABLE_NAME => $OUTPUT_TABLE_NAME
,OUTPUT_TABLE_FIELDS => $OUTPUT_TABLE_FIELDS
-- Size limit for variables is 256. If your input string exceeds the limit, parse the string directly in the call
-- e.g. OUTPUT_TABLE_FIELDS => 'Field_1,Field_2'
);
/* Output table view */
SELECT TOP 100 *
FROM IDENTIFIER($OUTPUT_TABLE_NAME)
ORDER BY (RECORDID);
Input Parameters#
Below is the input parameters information for calling stored procedure VERIFY_MULTIPLE_EMAILS
.
Parameter |
Data Type |
Description |
Example |
---|---|---|---|
LICENSE |
VARCHAR |
Required. |
REPLACE_WITH_YOUR_LICENSE_KEY |
OPTIONS |
VARCHAR |
Required. Empty string is accepted. |
verifymailbox:express |
INPUT_TABLE_NAME |
VARCHAR |
Required. |
IN_DB.IN_SCHEMA.INPUT_TABLE_NAME |
OUTPUT_TABLE_NAME |
VARCHAR |
Required. |
|
OUTPUT_TABLE_FIELDS |
VARCHAR |
Required. Case-sensitive. Empty string is accepted. |
RecordID, |
Output Examples#
Some common examples are shown below.
Verify multiple emails with the default output fields
Call the stored procedure to verify multiple emails with Default Output Fields.
USE GLOBAL_EMAIL.CORE; /* Set input parameters, replace with your values */ SET LICENSE = '<REPLACE_WITH_YOUR_LICENSE_KEY>'; SET OPTIONS = ''; SET INPUT_TABLE_NAME = '<INPUT_DATABASE>.<INPUT_SCHEMA>.<INPUT_TABLE>'; SET OUTPUT_TABLE_NAME = '<OUTPUT_TABLE_NAME>'; SET OUTPUT_TABLE_FIELDS = ''; /* Map your input columns with our default schema, replace with your column names */ /* For optional columns, uncomment/comment each line to enable the needed ones. */ CREATE OR REPLACE TEMPORARY VIEW INPUT_RECORDS AS SELECT RECID AS RECORDID, COALESCE(EMAIL, '') AS EMAIL FROM IDENTIFIER($INPUT_TABLE_NAME); /* Call the verify procedure */ CALL VERIFY_MULTIPLE_EMAILS( LICENSE => $LICENSE ,OPTIONS => $OPTIONS ,INPUT_TABLE_NAME => TABLE(INPUT_RECORDS) ,OUTPUT_TABLE_NAME => $OUTPUT_TABLE_NAME ,OUTPUT_TABLE_FIELDS => $OUTPUT_TABLE_FIELDS );
Query output table.
SELECT TOP 100 * FROM IDENTIFIER($OUTPUT_TABLE_NAME) ORDER BY (RECORDID);
Verify multiple emails with selected output fields
Call stored procedure to verify multiple emails from an input table at once.
USE GLOBAL_EMAIL.CORE; /* Set input parameters, replace with your values */ SET LICENSE = '<REPLACE_WITH_YOUR_LICENSE_KEY>'; SET OPTIONS = ''; SET INPUT_TABLE_NAME = '<INPUT_DATABASE>.<INPUT_SCHEMA>.<INPUT_TABLE>'; SET OUTPUT_TABLE_NAME = '<OUTPUT_TABLE_NAME>'; SET OUTPUT_TABLE_FIELDS = '<Field_1,Field_2>'; /* Map your input columns with our default schema, replace with your column names */ /* For optional columns, uncomment/comment each line to enable the needed ones. */ CREATE OR REPLACE TEMPORARY VIEW INPUT_RECORDS AS SELECT RECID AS RECORDID, COALESCE(EMAIL, '') AS EMAIL FROM IDENTIFIER($INPUT_TABLE_NAME); /* Call the verify procedure */ CALL VERIFY_MULTIPLE_EMAILS( LICENSE => $LICENSE ,OPTIONS => $OPTIONS ,INPUT_TABLE_NAME => TABLE(INPUT_RECORDS) ,OUTPUT_TABLE_NAME => $OUTPUT_TABLE_NAME ,OUTPUT_TABLE_FIELDS => $OUTPUT_TABLE_FIELDS -- Size limit for variables is 256. If your input string exceeds the limit, parse the string directly in the call -- e.g. OUTPUT_TABLE_FIELDS => 'Field_1,Field_2' );
Query output table.
SELECT TOP 100 * FROM IDENTIFIER($OUTPUT_TABLE_NAME) ORDER BY (RECORDID);
Verify multiple emails with ‘ALL’ output fields
Call stored procedure to verify multiple emails from an input table at once.
USE GLOBAL_EMAIL.CORE; /* Set input parameters, replace with your values */ SET LICENSE = '<REPLACE_WITH_YOUR_LICENSE_KEY>'; SET OPTIONS = ''; SET INPUT_TABLE_NAME = '<INPUT_DATABASE>.<INPUT_SCHEMA>.<INPUT_TABLE>'; SET OUTPUT_TABLE_NAME = '<OUTPUT_TABLE_NAME>'; SET OUTPUT_TABLE_FIELDS = 'All'; /* Map your input columns with our default schema, replace with your column names */ /* For optional columns, uncomment/comment each line to enable the needed ones. */ CREATE OR REPLACE TEMPORARY VIEW INPUT_RECORDS AS SELECT RECID AS RECORDID, COALESCE(EMAIL, '') AS EMAIL FROM IDENTIFIER($INPUT_TABLE_NAME); /* Call the verify procedure */ CALL VERIFY_MULTIPLE_EMAILS( LICENSE => $LICENSE ,OPTIONS => $OPTIONS ,INPUT_TABLE_NAME => TABLE(INPUT_RECORDS) ,OUTPUT_TABLE_NAME => $OUTPUT_TABLE_NAME ,OUTPUT_TABLE_FIELDS => $OUTPUT_TABLE_FIELDS );
Query output table.
SELECT TOP 100 * FROM IDENTIFIER($OUTPUT_TABLE_NAME) ORDER BY (RECORDID);
DROP_OUTPUT_TABLE#
After the creation, output table is only allowed for:
Select.
SELECT TOP 100 * FROM <OUTPUT_TABLE_NAME> ORDER BY (RECORDID);
Insert.
By calling the same stored procedure without changing the input structure, new records will be inserted to the same table.
Drop.
Use stored procedure
DROP_OUTPUT_TABLE
if you wish to remove the table from the application database. Only tables created by the procedure call can be dropped.CALL GLOBAL_EMAIL.CORE.DROP_OUTPUT_TABLE('<OUTPUT_TABLE_NAME>');
Default Input Options#
If input OPTIONS is empty, default input options will be:
Parameter |
Value |
---|---|
OPTIONS |
VerifyMailbox:Express, |
These are our recommended service options for general batch processing.
See more information about endpoint input OPTIONS.
Additional columns available only with WhoIsLookup:ON
DomainAgeEstimated
DomainExpirationDate
DomainCreatedDate
DomainUpdatedDate
DomainEmail
DomainOrganization
DomainAddress1
DomainLocality
DomainAdministrativeArea
DomainPostalCode
DomainCountry
DomainAvailability
DomainCountryCode
DomainPrivateProxy
Default Output Fields#
If OUTPUT_TABLE_FIELDS is empty, output table will have the default schema below.
Column Name |
Data Type |
---|---|
RECORDID |
NUMBER PRIMARY KEY |
RESULTS |
VARCHAR |
EMAILADDRESS |
VARCHAR |
EMAILAGEESTIMATED |
VARCHAR |
BREACHCOUNT |
VARCHAR |
DELIVERABILITYCONFIDENCESCORE |
VARCHAR |
DOMAINNAME |
VARCHAR |
DOMAINETYPEINDICATOR |
VARCHAR |
MAILBOXNAME |
VARCHAR |
PRIVACYFLAG |
VARCHAR |
TOPLEVELDOMAIN |
VARCHAR |
TOPLEVELDOMAINNAME |
VARCHAR |
Versions and Updates#
Check for current version#
Select Data Products > Apps, the current version of the app will be on display.

Or, run this query in Projects > Worksheets
SHOW APPLICATIONS;
Updates#
When Melissa releases a new version of the Native App, your installed application will get updated automatically.
However, you will need to reinstall the app’s functionality after the upgrade is complete, as described in Application Configuration.
Result Codes#
For the full list of result codes returned by Native App Global Email: Snowflake, please visit here.
Deliverability Confidence Score (Basic)#
Global Email includes a DeliverabilityConfidenceScore (DCS) with each email.
The DCS is a single number in range 0-100 that represents how confident we are that an email will successfully delivered. It can be used as a quicker and simpler way to filter emails, either as a first step before diving into result codes, or for a single pass of data cleansing.
DCS is not simply a numerical representation of our result codes. We leverage email metadata and reference data to further refine DCS, making it even more dynamic than our result codes.
Using DCS#
While certain use cases will vary, our general recommendataions for using DCS are:
DCS |
Recommendation |
---|---|
0 to 30 |
Do not send. |
31 to 60 |
Low confidence in successful email delivery. |
61 to 75 |
Medium confidence in successful email delivery. |
76 to 100 |
High confidence in successful email delivery. |
We believe the DCS is especially useful for marketing campaigns involving high volumes of emails. Such campaigns are often sensitive to special cases, like accept-all email addresses. By itself an accept-all result code does not provide a clear indication of deliverability. In such cases, relying purely on result code filters puts the efficacy of a campaign at risk.
Because the DCS factors in more than just result codes, we recommend using DCS as the primary filter for marketing efforts. Please refer to the FAQ: What is an accept all mail server?, for more information on accept-all emails and why they are a problem in the world of email verification and email marketing.
Interpreting Result Codes#
Result codes yield more granular information about a given email.
They are returned as a comma-delimited string of 4-character alpha-numeric codes, e.g. ES01,ES07,ES21
or EE04,ES22
.
SE## and GE## Codes#
The SE## and GE## codes (Transmission Service Error and General Transmission Error) are used to signify more general errors, and are returned under the key TransmissionResults
in the outermost level of our responses.
ES## and EE## Codes#
The ES## and EE## codes (Email Status and Email Error) are returned alongside each email record in a response.
Using Result Codes#
In general, we recommend using the equivalent of a string.contains()
method to check our result codes.
Looking for exact matches between two result code strings could lead to misinterpretations.
The same underlying outcome can be expressed through different result code combinations.
For example, a valid email might return any of the following: ES01,ES22
, ES01,ES10,ES22
or ES01,ES10,ES12,ES22
.
In each case, the email is valid, but the API made different corrections to the input.
Filtering by only one exact string would miss the others.
While changes in result codes are rare outside of major releases, using string.contains()
or an equivalent is the most future-proof way to handle our result codes.
For example, the result code ES02
was deprecated after Global Email version 3.
However, even with version 3, any email that came back with ES02
always had at least one EE##
code (e.g. ES02,EE04
).
Any implementation that was looking for EE##
independently of ES02
would have been forward compatible; those relying on specific combinations would have broken.
Pseudocode#
While our result codes allow for very granular analysis, a general use case could entail something like the following:
# Pythonic pseudocode
# The below indicates that, based on a real-time check, the email is valid
# and that we successfully fixed the syntax of the original input.
resultCodeStr = "ES01,ES10,ES22"
correctionCodes = ["ES10","ES11","ES12","ES13"]
# first check if the email is invalid
if resultCodeStr.contains("EE" OR "ES04"):
# invalid email
handleInvalidEmail()
# if the email result is unknown
elif resultCodeStr.contains("ES03"):
handleUnknownEmail()
# if the email is valid
elif resultCodeStr.contains("ES01"):
# check for any undesirable codes that can get returned with ES01
if resultCodeStr.contains("ES05" OR "ES06" OR ...)
handleSuspiciousEmail()
# if there were no undesirable flags present
else:
handleValidEmail()
# lastly check to see if any syntax correction were made to the input
if any(substring in resultCodeStr for substring in correctionCodes) :
# you may want to update your records with the fixed email
updateFixedEmail()
# Few users will need to account for every single individual result
# code, but more granular analysis beyond the above is easily implemented.
Common Result Code Recommendations#
We strongly recommend implementing cascading logic when evaluating result codes.
Since multiple codes can be returned in a single response, it’s important to process them in order of priority to ensure accurate handling.
For instance, if an email returns ES01,ES05,ES22
, the ES05
should be addressed before ES01
as it indicates a more critical status to check.
How you choose to act on each code will depend on your specific use case.
Typically once you identify that an email is invalid (EE##
) or contains a set of undesirable result code(s), then you shouldn’t need to evaluate those results further.
The following table shows the most common result codes seen while using Global Email and our recommendations for how to interpret them. The codes are ordered by priority – meaning you should filter for and handle the codes higher on the list before those lower down.
Code |
Description |
Recommendation for Marketing |
Recommendation for Point of Entry |
---|---|---|---|
|
Email Syntax Error |
Reject |
Reject |
|
Email Domain Not Found |
Reject |
Reject |
|
Email Server Not Found |
Reject |
Reject |
|
Invalid Email |
Reject |
Reject |
|
Mobile Email Address |
Reject |
Reject |
|
Disposable Domain |
Reject |
Caution |
|
Spamtrap Domain |
Reject |
Accept |
|
Spamtrap Mailbox |
Reject |
Accept |
|
Role Address |
Caution |
Accept |
|
Protected Mailbox Caution |
Caution |
Accept |
|
Accept All Server |
Caution |
Accept |
|
Suspicious Characters |
Caution |
Accept |
|
Unknown Email |
Caution |
Accept |
|
Valid Email |
Accept |
Accept |