New

Free Email Tester is Live

Real-time open & click tracking - No setup required

๐Ÿ’ก

Test Multi-Channel Verifications

Need to receive mock SMS text messages for OTP or MFA? Try our free simulated SMS Gateway.

Try SMS Sandbox โ†’
Developer-First SMTP Sandbox

SmtpCove

Test outbound email integrations safely in development and staging. Block emails from reaching real mailboxes, inspect rendered HTML, attachments, headers, and codes instantly.

๐Ÿ›ก๏ธ

SMTP Sandbox Disclaimer

SmtpCove is a closed testing sandbox. All emails sent to this server are intercepted and previewed here. We **never deliver messages to actual mailboxes** (e.g. Gmail, Yahoo, Outlook) to safeguard email sending reputation.

Launch Sandbox

Get custom SMTP credentials and a private mailbox instantly with one click.

Or Access Existing
Leave blank for Read-Only

How SmtpCove Works

1

Get SMTP Credentials

Launch a sandbox account. You receive an SMTP Server Host (`sandbox.mail.od2.in`), Port `2525`, and a unique dynamic username/password.

2

Configure Application

Input your custom SMTP credentials into your local application config. SmtpCove accepts traffic immediately.

3

Analyze Emails

Emails display instantly. Verify template responsiveness inside our sandboxed frame, read SMTP audit logs, and copy extracted OTPs.

Secure Isolation: Emails routed through SmtpCove are trapped inside your private container database and never sent out to real users.

Why Developers Use SmtpCove

Staging email deliverability should not risk sending spam to real customers or trigger spam penalties. SmtpCove gives you a closed testing box compatible with standard tools.

๐Ÿ”Œ

Zero-Config Integration

Works as a drop-in replacement. Simply configure your mail client settings (host, port 2525/587, and credentials) to see your logs immediately.

๐Ÿ”

HTML Render & Preview

Check responsiveness of HTML email layouts across different sizes. SmtpCove PURIFY-cleans and previews templates inside sandboxed viewports.

๐Ÿค–

OTP Code Detection

Our smart algorithm parses captured emails in real-time, extracts one-time verification passwords (OTPs), and exposes active links instantly.

How SmtpCove Stacks Up

No credit card. No sign-up. Instant sandbox.

Mailtrap

Popular paid alternative

โœ“SMTP email interception
โœ“HTML email preview
โœ—Free, no account required
โœ—Auto OTP code detection
โœ—Shareable read-only inbox
โœ—Zero local setup
โœ—No rate limits on free tier
โ˜… Recommended

SmtpCove

Free forever ยท No sign-up

โœ“SMTP email interception
โœ“HTML email preview
โœ“Free, no account required
โœ“Auto OTP code detection
โœ“Shareable read-only inbox
โœ“Zero local setup
โœ“No rate limits on free tier

Mailhog

Self-hosted / Docker only

โœ“SMTP email interception
โœ“HTML email preview
โœ“Free, no account required
โœ—Auto OTP code detection
โœ—Shareable read-only inbox
โœ—Zero local setup
โœ“No rate limits on free tier

SmtpCove is the only hosted, zero-signup sandbox with built-in OTP detection and shareable read-only links.

Have questions about retention limits, integrations, or security? Read the FAQs at the bottom of this page.

Integration Guide

How to Use SmtpCove in Your App

Plug SmtpCove into any framework in under two minutes. Replace your production SMTP credentials with the sandbox values and all outgoing mail is captured, nothing reaches real inboxes.

Node.jsUsing SmtpCove with Nodemailer

Nodemailer is the most popular email library for Node.js. To use SmtpCove, create a transporter pointing at the sandbox host and drop in your generated credentials. No TLS certificate verification is required in the sandbox.

const nodemailer = require('nodemailer');

// 1. Create SmtpCove transporter
const transporter = nodemailer.createTransport({
  host: 'sandbox.mail.od2.in',
  port: 2525,             // also works on 587
  secure: false,          // use STARTTLS, not SSL
  auth: {
    user: 'YOUR_SANDBOX_USERNAME',   // e.g. [email protected]
    pass: 'YOUR_SANDBOX_PASSWORD',
  },
});

// 2. Send a test email, it will appear in your SmtpCove inbox
await transporter.sendMail({
  from: '"My App" <[email protected]>',
  to: '[email protected]',
  subject: 'Welcome! Verify your account',
  text: 'Your OTP is: 482910',
  html: '<h1>Your OTP is <strong>482910</strong></h1>',
});

console.log('Email captured in SmtpCove sandbox โœ“');

PythonUsing SmtpCove with Django & smtplib

In Django, override your settings.py email backend for staging. In raw Python, use smtplib with STARTTLS. Both connect identically to SmtpCove.

# Django settings.py (staging)
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST     = 'sandbox.mail.od2.in'
EMAIL_PORT     = 2525
EMAIL_USE_TLS  = True
EMAIL_HOST_USER     = 'YOUR_SANDBOX_USERNAME'
EMAIL_HOST_PASSWORD = 'YOUR_SANDBOX_PASSWORD'

# --- OR raw smtplib ---
import smtplib
from email.mime.text import MIMEText

msg = MIMEText('<h1>OTP: 482910</h1>', 'html')
msg['Subject'] = 'Verify your account'
msg['From']    = '[email protected]'
msg['To']      = '[email protected]'

with smtplib.SMTP('sandbox.mail.od2.in', 2525) as s:
    s.starttls()
    s.login('YOUR_SANDBOX_USERNAME', 'YOUR_SANDBOX_PASSWORD')
    s.send_message(msg)
    print('Captured in SmtpCove โœ“')

PHPUsing SmtpCove with Laravel & WordPress

Laravel reads SMTP config from .env. WordPress uses a plugin like WP Mail SMTP. In both cases, just swap the host, port, and credentials for your sandbox values.

Laravel .env

MAIL_MAILER=smtp
MAIL_HOST=sandbox.mail.od2.in
MAIL_PORT=2525
MAIL_USERNAME=YOUR_SANDBOX_USERNAME
MAIL_PASSWORD=YOUR_SANDBOX_PASSWORD
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"

WordPress WP Mail SMTP

โ‘  Install WP Mail SMTP plugin

โ‘ก Set mailer to Other SMTP

โ‘ข SMTP Host โ†’ sandbox.mail.od2.in

โ‘ฃ Port โ†’ 2525, Encryption โ†’ TLS

โ‘ค Username / Password โ†’ your sandbox credentials

โ‘ฅ Send a test email from WP Mail SMTP โ†’ verify in SmtpCove inbox

Best Practice: Use Environment Variables

Never hardcode SMTP credentials. Store them in environment variables and switch between sandbox and production with a single env flag. Here is a recommended pattern that works across Node.js, Python, and PHP apps:

.env.staging

SMTP_HOST=sandbox.mail.od2.in
SMTP_PORT=2525
SMTP_USER=YOUR_SANDBOX_USERNAME
SMTP_PASS=YOUR_SANDBOX_PASSWORD
[email protected]

.env.production

SMTP_HOST=smtp.sendgrid.net
SMTP_PORT=587
SMTP_USER=apikey
SMTP_PASS=SG.xxxxxxxxxxxxxxxxxxxx
[email protected]

Troubleshooting Common Connection Errors

ECONNREFUSED / Connection timed out

Ensure your local firewall or cloud security group allows outbound TCP on port 2525 or 587. On some corporate networks, non-standard SMTP ports are blocked, switch to port 587 as a fallback.

SMTP AUTH failed / Invalid credentials

Copy the exact username and password from your SmtpCove credentials panel, they are case-sensitive 12-character hex strings. Sandbox accounts expire after 7 days; create a new one if credentials are rejected.

CERT_HAS_EXPIRED / TLS handshake failure

In development only, you can disable TLS verification with rejectUnauthorized: false in Node.js or MAIL_ENCRYPTION=tls with ssl: false in Laravel. Never disable TLS in production.

Email sent successfully but not visible in console

Check that the To: address ends in @sandbox.mail.od2.in. Emails addressed to any other domain are silently dropped by the sandbox. Also confirm the sandbox account has not expired.

Frequently Asked Questions

Common questions about using SmtpCove SMTP Testing Sandbox.

Loading Sponsor...