n8n community node for MailSafePro Email Validation API - Enterprise email validation with risk scoring, SMTP verification, batch processing, and deliverability analysis
npm install n8n-nodes-mailsafepro!n8n
!License
!Version
!Node
!TypeScript
!Tests
Enterprise-grade email validation node for n8n workflow automation
Features • Installation • Operations • Examples • API Reference • Support
---
| Feature | Description |
|---------|-------------|
| ✅ Single Validation | Real-time email validation with full analysis |
| 📊 Batch Validation | Process up to 10,000 emails asynchronously |
| ⏳ Wait for Completion | Built-in polling with configurable timeout |
| ⚡ Quick Check | Fast syntax/domain validation without SMTP |
| 🔄 Auto-Retry | Exponential backoff for rate limit handling |
| 📈 Statistics | Automatic batch statistics calculation |
| Feature | Description |
|---------|-------------|
| 🔍 SMTP Verification | Real mailbox existence checking |
| ⚠️ Risk Scoring | Multi-factor risk assessment (0-1 scale) |
| 🛡️ DNS Security | SPF, DKIM, DMARC validation |
| 🚫 Spam Trap Detection | Identify honeypot addresses |
| 📧 Disposable Detection | Block 10,000+ temporary email services |
| 🏢 Role Email Detection | Identify generic addresses (admin@, info@) |
| 🎯 Catch-All Detection | Identify domains accepting all emails |
Every validation result includes computed fields for easy workflow logic:
| Field | Type | Description |
|-------|------|-------------|
| risk_level | string | low / medium / high |
| quality_tier | string | excellent / good / fair / poor |
| is_safe_to_send | boolean | Safe to send (valid + low risk) |
| is_high_risk | boolean | Risk score ≥ 0.7 |
| should_review | boolean | Medium risk, needs manual review |
| recommendation | string | Human-readable action recommendation |
| deliverability_status | string | high / medium / low / unknown |
---
1. Go to Settings → Community Nodes
2. Click Install
3. Enter n8n-nodes-mailsafepro
4. Click Install
``bash`
cd ~/.n8n
npm install n8n-nodes-mailsafepro
`yaml`docker-compose.yml
services:
n8n:
image: n8nio/n8n
environment:
- N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom
volumes:
- ./custom:/home/node/.n8n/custom
Then install the package in the custom directory.
---
1. Sign up at mailsafepro.com
2. Go to your Dashboard
3. Copy your API Key
1. Go to Credentials → New
2. Search for MailSafePro
3. Enter your API Key
4. (Optional) Change Base URL for self-hosted instances
5. Click Save
---
#### Validate Single
Full validation of a single email address with SMTP verification.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Email | string | ✅ | - | Email address to validate |
| Check SMTP | boolean | ❌ | true | Perform SMTP mailbox verification |
| Include Raw DNS | boolean | ❌ | false | Include full DNS records |
| Timeout | number | ❌ | 30 | Request timeout in seconds |
Example Output
`json`
{
"email": "user@gmail.com",
"valid": true,
"status": "deliverable",
"risk_score": 0.15,
"quality_score": 0.89,
"risk_level": "low",
"quality_tier": "excellent",
"is_safe_to_send": true,
"is_high_risk": false,
"should_review": false,
"recommendation": "✅ Safe to send",
"deliverability_status": "high",
"provider_analysis": {
"provider": "google",
"reputation": 0.95
},
"smtp_validation": {
"checked": true,
"mailbox_exists": true
},
"validated_at": "2026-01-04T12:00:00.000Z"
}
#### Validate Multiple (Sync)
Validate multiple emails synchronously (max 100).
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Emails | string | ✅ | - | Comma/newline/semicolon separated |
| Check SMTP | boolean | ❌ | false | SMTP verification |
| Return Individual Results | boolean | ❌ | true | Split into separate items |
| Include Statistics | boolean | ❌ | true | Include batch statistics |
#### Quick Check
Fast syntax and domain validation without SMTP (ideal for real-time form validation).
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| Email | string | ✅ | Email address to check |
---
#### Create Job
Create an async batch validation job for large lists.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Emails | string | ✅ | - | List of emails (max 10,000) |
| Check SMTP | boolean | ❌ | false | SMTP verification |
| Priority | select | ❌ | normal | low / normal / high |
| Callback URL | string | ❌ | - | Webhook for completion |
| Job Name | string | ❌ | - | Identifier for the job |
| Deduplicate | boolean | ❌ | true | Remove duplicates |
#### Get Status
Check the current status of a batch job.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| Job ID | string | ✅ | The batch job ID |
Returns: Status with progress_percent, is_completed, is_processing, is_failed
#### Get Results
Retrieve validation results from a completed job.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Job ID | string | ✅ | - | The batch job ID |
| Page | number | ❌ | 1 | Page number |
| Page Size | number | ❌ | 100 | Results per page (max 1000) |
| Filter Status | select | ❌ | All | Filter by validation status |
| Return Individual Results | boolean | ❌ | false | Split into items |
| Include Statistics | boolean | ❌ | true | Include batch stats |
#### Wait for Completion ⭐
Poll until a job completes with automatic result fetching.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Job ID | string | ✅ | - | The batch job ID |
| Max Wait Time | number | ❌ | 300 | Timeout in seconds |
| Poll Interval | number | ❌ | 10 | Check frequency in seconds |
| Fetch Results | boolean | ❌ | true | Auto-fetch on complete |
| Include Statistics | boolean | ❌ | true | Include batch stats |
#### List Jobs
List all batch jobs for your account.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Limit | number | ❌ | 20 | Max jobs to return |
| Filter Status | select | ❌ | All | Filter by job status |
#### Cancel Job
Cancel a pending or processing batch job.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| Job ID | string | ✅ | The batch job ID |
---
#### Get Usage
Get current API usage statistics.
Returns:
- validations_used - Number of validations usedvalidations_limit
- - Plan limitvalidations_remaining
- - Remaining validationsusage_percent
- - Usage percentageis_near_limit
- - True if usage ≥ 80%is_at_limit
- - True if usage ≥ 100%
#### Get Plan
Get subscription plan details and limits.
---
``
[Webhook: Form Submit] → [MailSafePro: Validate Single] → [IF: is_safe_to_send]
├─ true → [Create User]
└─ false → [Return Error]
``
[Schedule: Weekly] → [Get Subscribers from DB] → [MailSafePro: Create Batch Job]
↓
[Update DB: Remove Invalid] ← [MailSafePro: Wait for Completion]
``
[CRM Trigger: New Lead] → [MailSafePro: Validate Single] → [Code: Calculate Score]
↓
[Update CRM Lead Score]
``
[Form Submit] → [MailSafePro: Quick Check] → [Switch: status]
├─ deliverable → [Save Lead]
├─ risky → [Flag for Review]
└─ undeliverable → [Return Error Message]
``
[Read CSV] → [MailSafePro: Validate Multiple] → [Split by: risk_level]
├─ low → [Safe List]
├─ medium → [Review Queue]
└─ high → [Reject List]
---
| Score | Level | Emoji | Recommended Action |
|-------|-------|-------|-------------------|
| 0.00 - 0.29 | 🟢 Low | ✅ | Safe to send |
| 0.30 - 0.49 | 🟡 Medium-Low | ✓ | Safe with monitoring |
| 0.50 - 0.69 | 🟠 Medium | ⚡ | Consider verification |
| 0.70 - 1.00 | 🔴 High | ⚠️ | Manual review required |
| Status | Description | Action |
|--------|-------------|--------|
| deliverable | Valid email, mailbox exists | ✅ Send |undeliverable
| | Invalid or non-existent | ❌ Remove |risky
| | Valid but has risk factors | ⚠️ Review |unknown
| | Could not fully verify | 🔄 Retry later |
| Tier | Score Range | Description |
|------|-------------|-------------|
| Excellent | > 0.80 | High-quality, engaged email |
| Good | 0.61 - 0.80 | Reliable email address |
| Fair | 0.41 - 0.60 | Acceptable with some concerns |
| Poor | ≤ 0.40 | Low quality, high risk |
---
| Plan | Requests/Min | Sync Batch | Async Batch |
|------|--------------|------------|-------------|
| FREE | 1 | 10 | 50 |
| PREMIUM | 100 | 100 | 1,000 |
| ENTERPRISE | 1,000 | 100 | 10,000 |
The node includes automatic retry with exponential backoff for rate limit errors (HTTP 429).
---
`bashClone
git clone https://github.com/mailsafepro/n8n-nodes-mailsafepro.git
cd n8n-nodes-mailsafepro
$3
`
n8n-nodes-mailsafepro/
├── credentials/
│ └── MailSafeProApi.credentials.ts
├── nodes/
│ └── MailSafePro/
│ ├── MailSafePro.node.ts
│ └── mailsafepro.svg
├── test/
│ └── MailSafePro.node.test.ts
├── examples/
│ └── workflows/
│ ├── validate-signups.json
│ ├── clean-email-list.json
│ └── lead-scoring.json
├── package.json
├── tsconfig.json
└── README.md
``---
| Resource | Link |
|----------|------|
| 📚 API Documentation | docs.mailsafepro.com |
| 💬 n8n Community | community.n8n.io |
| 🐛 Report Issues | GitHub Issues |
| 📧 Email Support | support@mailsafepro.com |
| 🌐 Website | mailsafepro.com |
---
MIT License - see LICENSE for details.
---
Initial Release
- ✨ Email validation with enriched results
- Single email validation with SMTP
- Quick check (syntax/domain only)
- Multiple emails sync validation (up to 100)
- ✨ Batch job management
- Create async jobs (up to 10,000 emails)
- Get job status with progress
- Get paginated results with filters
- Wait for completion with auto-polling
- List all jobs
- Cancel pending jobs
- ✨ Account management
- Get usage statistics
- Get plan details
- ✨ Advanced features
- Automatic retry with exponential backoff
- Batch statistics calculation
- Email deduplication
- Configurable timeouts
- Comprehensive error handling
- ✨ Developer experience
- Full TypeScript support
- 32 unit tests
- Example workflows included
- Detailed documentation
---
Made with ❤️ by MailSafePro