Email Verifier Pro



Getting Started

Script Version: 2.8
Created: 09/Aug/2019
Updated: 15/June/2021
By: Tuhin Bhuiyan

Email Verifier Pro is a professional email verification tool which allows you to do verifying bulk list of email addresses and validating them in a background email scanning process and shows scan results with an easy to read report divided into multiple categories like valid, invalid, duplicates, unknown, syntax error addresses. All verified clean email address can be downloaded as CSV or save a clean list in the database for later use from lead management. Which can be used for sending bulk emails to your clients and customers for email marketing purpose.

Back To Top

Change Log

Added: Outlook365 Business Address Validation Support
Fixed: Few more code fixes.

Added: New Manual Top-up Credit Feature [evp credit store addon]
Added: Yahoo/Aol/Rocketmail 100% accuracy scan
Added: All Outlook/Microsoft 100% accuracy scan
Added: On Script Support Menu – Beta
Update: sweetalert to sweetalert2
Update: Several improvements with scan result labels & new mx record column
Fixed: Payment addon activation bug
Fixed: Menu Icons with proper one

Fixed: License new system validation fix
Fixed: Few more fixes

Fixed: Tiny fix with gmail addresses validation

Fixed: scan script run issue on php 7.x

Update: Bug Fix
Added: Paypal standard addon [Extended License]

Update: Improved scan system
Update: My List – Bulk scan page improvement
Added: Billing options [Extened License]
Added: Addons system
Added: Wallet & virtual credits system [Extened License]
Added: Product creation page, order history and credit top up

Fixed: Bug Fix
Update: General layout updates
Update: Documentation updates
Update: User management removed [From Single Use/Regular License]
Update: User registeration removed [From Single Use/Regular License]

Added: Customize SMTP Port

Fixed: license key activation
Fixed: license key activation
Fixed: installation error field value not found
Fixed: user ip visibility issue
Fixed: user list navigation
Fixed: login issue in IE
Update: documentation – troubleshooting

Design improvement
Added: Background mail verification process
Added: Quick Validator

Added: Multi user system
Added: Segment based result export
Added: User management
Added: Dashboard Report

Added: Additional Settings
Added: User Profile

Added .htaccess

Adding more error handling at installation script.
Adding password reset features.

Initial Release.

Back To Top

Support, Sources and Credits

Please contact our support panel for script support.

I’ve used the following open source files and images as listed.

  • Bootstrap 4:
  • Fontawesome:
  • Login Background Images:
  • Ckeditor 4 :
  • Chart.js:
  • Modernizr :

Once again, thank you so much for purchasing this Script. As I said at the beginning, I’d be glad to help you if you have any questions relating to this script. No guarantees, but I’ll do my best to assist. If you have a more general question relating to the script on Codecanyon, you might consider visiting the forums and asking your question in the “Item Discussion” section.

Back To Top


Minimum Requirements

    • Web Server: Apache/Nginx
    • PHP Version: 5.4+
    • MySQL / MariaDB Version: 5.6+ / 10+
    • Active PHP Functions: PHP Mail(), PHP Session.
    • Suppored Browser with Javascript & Cookies Enabled.
    • IE9 IE10 IE11, Edge, Firefox, Chrome, Safari
    • Any Cheap Linux VPS with rDNS point to host IP and 25 port open
    • Root access to modify apache and php timeout.
    • Access to Cron Job
    • Clean server with no other scripts or domains running beside this email scan script.
    • Your server must be configured properly as a mail server to avoid being blocked or blacklisted. This includes things like SSL, SPF records, Domain Keys, DMARC records, etc. To check your mail server health use this tool
      To check if your server can make outgoing connection over port 25 for the script to work, Download this file, unzip and access it from your web url. If you see all smtp ports 25 open like this bottom image then you are good to go!


After Uploading extracted files to “public_html” folder or domain public web folder via FTP, you have to visit install.php file path via browser for starting up the installation process.

File Path For Install.php :

Do not forget to replace “” with your own domain address.

If this is a first time clean installation and not an update then you will be automatically redirected to install.php once you try to visit your domain. eg: But if you do not get redirect to install.php then you can simply visit it by following address:

Back To Top

Step – 1


At the very first step of install it will cross-check existing server compatibility with the script to ensure the highest compatibility. If you see something RED then make sure you have it supported and enabled. Please recheck Minimum Requirements support to run this script and make sure its all active and enabled on your server & browser before proceeding with installation. If you see MySQL version check skipped at system check in localhost then not to be worry, it will get check during database connection test at step 2.

Add in your purchased product liccense and email information from envato to verify purchase and proceeding to step 2.

Back To Top

Step – 2

Once everything has detected correctly and green, press “Next” and proceed to database configuration. Add in your database connection on this page and proceed to “Next” page.

Back To Top

Step – 3

This is the final step to create your login user account. Just simply input in a name, username, email address and password with at least 6 digit and click “Complete”. After this, your installation will be completed and you will be redirected to login page.


Background – Tasker Cron Job:

Once its done, you have to create a 10 or 30 minutes cron job for following file path in your web panel or crontab to activate scan to run in background and check the process always.

*/10 * * * * your_php_binary curl your_installation_path_url/functions/tasker.php

*minutes can be vary based on your server process run timeout. As some host side limits, apache background continues process runtime. Best is to keep it between 10 to 30 minutes.

You can find PHP Binary location through SSH by using command line

whereis php

Also, this your_php_binary  is not required at all if you have an easy-to-use web panel like cpanel or centos web panel. As it adds it automatically or tells you the formula already.


Here is a sample of Background Tasker Crontab in CentosWeb Panel which using EVP installation in a subfolder evpscan:


Remember: Failing to assign tasker crontab may interrupt your scan process from running for longer periods of time if you have not done your server configuration accordingly to this documentation.

Back To Top

Step – 4

Good Job! You Have Successfully Installed Me.

Delete install.php and script zip file from via cpanel / filemanager.

Back To Top

How To’s


(1.) After login with your created account. You will arrive at main page of the navigation menu, which is “DASHBOARD”.

DASHBOARD, (2) Allows you to check report on your scan results and expenses.

Also provides 2 actionable button (4) “Quick Validation” & “Add List”, Which allows you to validate your email addresses.

(3) On top right of screen you will find “Profile” and “Settings” for managing your personalize profile and system configurations.

Back To Top

My Listing

Before using this for the first time, it is recommended that you setup script settings first for “Scan Email”

After adding a csv list, it will autometically clear out duplicated email addresses and will enter only unique one into database for scanning.


Clicking on verify button will make start the verification process in background.


Once verification gets complete, user can see the result like this


Verified results can be downloaded into different segments

Back To Top

Lead Management

Email / Lead Management, allows you simply manage your saved scan email address list. So you can simply export your email list and can compare email address scan status later.

Back To Top

Send Mail

Send Mail, allows you to send bulk email addresses to imported addresses after validating if the actual address exists for avoiding bad mail server hits.

Though it’s mandatory not to use any FAKE FROM MAIL ADDRESS and use a real address that exists. Using FAKE FROM MAIL ADDRESS May Lead To Bad IP Reputation Of Your Mail Server.


(1.) On step #1, import a CSV file with all email addresses where you want to send emails. Email address column in CSV file needs to have label “Email” so import can get successful.

(2.) Delivery Report will show you a brief status of how your email has been handled to receivers.

(3.) On step #2, Email Form ---

  From: Type your email address from where it should be sent.

  To: All imported or manually typed receiver email address will be visible here. 
  If you manually add email address then use "," (without double quotation mark) to keep each email separated.

  Subject: Subject of email that you will be sending.

  Message: Here you will input your email body content. 
  You can either use the visual editor or add HTML source code of your email template.

  Send: For initiating the email to receivers.

Back To Top

User Management [extended license]

This page shows all registered users information and data. Admin have access to activate and suspend a user access to portal.


* this feature only available in extended license with EVP Member Addon

Back To Top

User Profile

This page shows logged in user profile data. User can modify and change their name, email, password and even upload their avatar from here.

Back To Top


Settings, allows configuring email verifier settings and all settings related with script. Before using send mail and email validation make sure to setup both of their settings so your email gets verified and send without any issues.

(1.) Send Mail - 

  Email Amount: the total amount of email will be sending out from mail server on time limit per hour.
  Time Limit: hourly time limit.

  Example: If you have 10,000 email address to receive an email within 24hrs 
  but in a limit of 1,000 emails, each time to be sent out from your web server 
  then set the time limit at 1 and email amount at 1,000. 
  So each hour server will process 1,000 emails and within 24hrs it will be 10,000.
(2.) Registration & Sitename and Logo -

  Allows to disable and enable public registration on site.
  Allows to change and modify site name and logo to completely white label your business site.				
(3.) Account Type Settings -
  In account type settings you can manage and add any free account, role account or 
  disposable email domain by your own even if not provided by us.	
(4.) Scan Mail Settings - 

  To have scan validation "My List" system to work properly, It is recommended to set a scan from mail.
  Also, you can modify and set a timeout between each email scan from script side only.
  This timeout cannot override delay between server to server side network connection speed. 

Back To Top

Common Issues & Troubleshooting

Installing Script In New Path / Transferring License

Before you plan to install email verifier pro script in a new location with your already registered license key, make sure you deactivate your existing activated license from old installed instance so your license gets released from active status and you can install email verifier pro script using the same license key again in a new location. You will find the deactivation option from the setting page.


Warning! Removing files from already installed script won’t release your active license status from our system end. If you have already done this without deactivating manually then you have to contact our support portal for manual release of your active installed license code.

Back To Top

Uploading Large CSV Files Returning Errors

If you receive “500 server-side error” from save_email.php in the browser network tab log then at first check your apache log for specified error. If error any of these…

Handler for (null) returned invalid result code 70007

For apache error related to timeout, mod_proxy, mod_fcgi_proxy fix – you can simply comment or remove this line from apache httpd.conf file

LoadModule reqtimeout_module modules/ 

Also, it is best not to use any proxy or timeout configurations apache module with this script. As it will make you do a lot of unnecessary settings adjustments to run the script properly in background.


If you receive javascript “Uncaught SyntaxError: Unexpected token G in JSON at position 0” in the browser console tab.


Then most likely file size is big and you have to increase your max_allowed_packet to 16M or higher value based on your server memory.

Check MySQL server has gone away after install complete!  for more details on this configuration.


Back To Top

MySQL server has gone away after install complete!

This error tells you that there are low amount of resources being used in MySQL which allows you to process the data from the script during final installation and it fails if not possible to complete it within a given time.

The easiest way to fix it by modifying your MySQL configuration file from the server by name mysql.ini or my.cnf

There usal paths are:


You can use any of these linux command line to find this file too:

locate my.cnf
whereis my.cnf
find . -name my.cnf


Once you open this file, Add or change the value from the existing max_allowed_packet property to 16M or higher based on your server memory

After that save the file and restart your MySQL server and try reinstalling the script again.

sudo /etc/init.d/mysql restart

Back To Top

Browser Do Not Support Javascript?

This error is very common if you have javascript disable in your browser or your browser is way oudated that it do not support javascript. Sometimes browser extensions can also have javascript disable, so make sure you have no javascript disabler extension active in your browser. Try on a browser which comes with javascript support builtin. Our tested browsers: IE10, IE11, Edge, Firefox, Chrome, Safari, Opera

Back To Top

Scan stops working after a fixed period of time / 504 error?

Make sure you have added the new Background Tasker cron job in your web panel cron tab settings. Read this topic to find how to setup tasker cron job. As it will fix scan halt and background processing automatically for you.
If you have added it successfully and still background process getting disconnected and halts then follow below additional adjustments:

This issue is very common if you are using nginx proxy, apache with php-fpm/fastcgi and have lower timeout value settings on php script run time when you scan thousand of emails list. Based on server configuration this issue can be resolved in several ways.

If you’re using VPS hosting, there are a few extra things you can try to fix the 504 gateway timeout error. They would involve tweaking the server settings and increasing specific resource limits.


Apache users may increase the default timeout value in the httpd.conf file. For example:

# Timeout: The number of seconds before receives and sends time out.
Timeout 99999

Furthermore, increasing the max_execution_time limit in php.ini can also bring positive results:

max_execution_time = 99999;

Save the changes, restart apache, and re-check. The 504 gateway timeout error should be gone if the cause was insufficient request timeout value.

Nginx + FastCGI (php-fpm enabled):

If your VPS utilizes Nginx, try increasing the following values in /etc/nginx/conf.d/timeout.conf

proxy_connect_timeout 99999; 
proxy_send_timeout 99999; 
proxy_read_timeout 99999; 
send_timeout 99999;

In php.ini set :

max_execution_time = 99999;

Change request_terminate_timeout parameter (commented by default) in /etc/php-fpm.d/www.conf (for Debian /etc/php5/fpm/pool.d/www.conf) file:

request_terminate_timeout = 99999;

Add fastcgi_read_timeout variable inside the ‘nginx’ virtual host configuration:

fastcgi_read_timeout 99999;

Add/increase the following values in the ‘http’ section of the /etc/nginx/nginx.conf file:

fastcgi_buffers 8 128k;
fastcgi_buffer_size 256k;

Restart both ‘apache’ and ‘nginx’.


If above steps doesn’t work, try this one..

  1. Open your nginx.conf file located in /etc/nginx directory.
  2. Add this below piece of code under http { section:
    client_header_timeout 99999;
    client_body_timeout 99999;
    fastcgi_read_timeout 99999;
    client_max_body_size 32m;
    fastcgi_buffers 8 128k;
    fastcgi_buffer_size 128k;

    Note: If its already present, change the values according.

  3. Reload Nginx and php5-fpm.
    $ service nginx reload
    $ service php5-fpm reload

    If the error persists, consider increasing the values.


Changes in php.ini

Try raising max_execution_time setting in php.ini file (CentOS path is /etc/php.ini):

max_execution_time = 99999;

Changes in PHP-FPM Try raising request_terminate_timeout setting in php.ini file (CentOS path is /etc/php-fpm.d):

request_terminate_timeout = 99999;
Changes in Nginx Config

Finally, add fastcgi_read_timeout variable inside our Nginx virtual host configuration:

location ~* \.php$ {
    include         fastcgi_params;
    fastcgi_index   index.php;
    fastcgi_read_timeout 99999;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;

Reload PHP-FPM and Nginx

service php–fpm restart
service nginx restart

Back To Top

How To Enable Session Support / Cookies for PHP?


By default PHP comes with session support enabled. But if PHP session is not accepting cookies then session cookie support can be turned on automatically at the site level, or manually in each PHP page script: Turning on session support automatically at the site level we have to modify some setting in php.ini file. you can get php.ini file in the folder you install PHP. To your sessions, you have to set or reset the following parameter in your php.ini file

        Define path to save sessions ; Replace to your path.
        session.save_path = "C:\php\sessiondata\"

        Directory related to server session should be under 777 chmod > fully writable

        Whether to use cookies.
        session.use_cookies = 1 

        Name of the session (used as cookie name). = PHPSESSID

        Define Lifetime in seconds of cookie or, if 0, until browser is restarted.
        session.cookie_lifetime = 0

        ;The path for which the cookie is valid.
        session.cookie_path = /

        The domain for which the cookie is valid.
        session.cookie_domain =

        Handler used to serialize data. php is the standard serializer of PHP.
        session.serialize_handler = php

There are some more setting which may be used to modify your Sessions. For more Details refer php.ini

Browser Blocking Cookies?

Check your browser default settings and see if it accepting cookies. By default all browser allow accept cookies. But sometimes third party internet security or browser extensions can prevent accepting cookies. Permission of those app has to be changed to allow cookies in browser so script works normally.

Invalid Session Token?

User session token or CSRF token can only be changed if you block creating new session or remove existing tokens during your installation process or any activity within the script. This protection is made simply for preventing token highjack or CSRF attack. To not facing this error, make sure you are allowing sessions to use cookies and not removing existing session tokens after generating browser sided tokens. Without manipulating default browser settings. 🙂

Back To Top