Introduction
Welcome to the MCheck documentation. MCheck is a comprehensive, self-hosted email verification tool built with PHP and Laravel. It's designed for marketers, developers, and businesses who need to maintain clean email lists, reduce bounce rates, and protect their sender reputation.
With MCheck, you can perform detailed checks on email addresses in bulk by uploading a CSV file or in real-time via its integrated REST API. Since you host the software on your own infrastructure, you have full control over your data and costs, with no recurring fees or verification limits.
Installation
You can install MCheck using two methods: the visual installer for a quick and easy setup, or the technical method via Git and Composer for more control and for development purposes.
1. Visual Installation (Recommended)
The easiest way to get started. The installation wizard will guide you through server requirement checks, database configuration, and admin account creation.
- Download the source code from your purchase receipt.
- Upload the contents of the `mcheck.zip` file to your web server's public directory (e.g., `public_html`).
- Navigate to `your-domain.com/install` in your web browser.
- Follow the on-screen instructions to complete the setup.
2. Technical Installation (Git & Composer)
This method is for developers comfortable with the command line and Git.
- Clone the repository from the private GitHub link provided with your purchase:
git clone YOUR_PRIVATE_REPO_URL - Navigate into the project directory:
cd mcheck - Install PHP dependencies:
composer install --no-dev - Copy the environment file:
cp .env.example .env - Configure your database and application settings in the `.env` file.
- Generate an application key:
php artisan key:generate - Run the database migrations:
php artisan migrate - (Optional) Seed the database with initial data:
php artisan db:seed
REST API Reference
MCheck includes a powerful REST API for real-time email verification. All API endpoints are prefixed with `/api`.
Authentication
The API uses X-Api-Key header authentication. You can find and manage your API keys in your admin dashboard under the "API Settings" section. Include your API key in the `X-Api-Key` header of your requests.
X-Api-Key: XXXXXXXXXXXXXXXXXXXX
Verify a Single Email
To verify a single email address, make a `POST` request to the `/api/verify` endpoint with the email as a query parameter.
Endpoint
POST /api/verify
Parameters
| Parameter | Type | Description |
|---|---|---|
| `email` | string | The email address to verify. (e.g., `test@example.com`) |
Example Request
curl -X POST "https://your-domain.com/api/verify?email=test@example.com" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Accept: application/json"
Responses
The API returns a JSON object with the verification results.
Successful Response (200 OK):
{
"is_valid": true,
"email": "test@example.com",
"quality_score": 95,
"suggestion": null,
"validations": {
"syntax": true,
"mx_records": true,
"smtp": true,
"disposable": false,
"role": false,
"catch_all": false
}
}
Error Response (e.g., 401 Unauthorized):
{
"message": "Unauthenticated."
}
Response Fields
- is_valid: (boolean) `true` if the email is considered deliverable, `false` otherwise.
- email: (string) The email address that was verified.
- quality_score: (integer) A score from 0 to 100 representing the deliverability confidence.
- suggestion: (string|null) A suggested correction for a potentially misspelled domain, or `null`.
- validations: (object) A breakdown of individual checks:
- `syntax`: Is the email format valid?
- `mx_records`: Does the domain have valid MX records?
- `smtp`: Was the SMTP server reachable?
- `disposable`: Is it from a disposable email provider?
- `role`: Is it a role-based address (e.g., `info@`)?
- `catch_all`: Does the server accept all emails?
Features
MCheck is packed with features to ensure your email lists are clean and your campaigns are effective.
Bulk Verification
The dashboard allows you to upload a CSV file containing a list of emails. The system will process the list in the background, providing real-time progress updates. Key features include:
- CSV Upload: Easily upload your contact lists.
- Progressive Results: View results as they come in, no need to wait for the entire list to finish.
- Deduplication: Automatically removes duplicate emails from your list before processing to save time.
- Downloadable Reports: Export the cleaned list, including all verification details and quality scores.
Admin Dashboard
The intuitive dashboard gives you a complete overview of your verification activities.
- Usage Statistics: Monitor the number of verifications, success rates, and invalid emails over time.
- API Management: Generate, revoke, and manage your API keys.
- Detailed Logs: Access a full history of all API and bulk verification jobs.