Skip to the console
Ping250

SMTP · Nodemailer · test client

Ping250

Send a test. Get a 250.

Enter your SMTP credentials, verify the connection, and send a real test email. When something fails you get the actual reason - authentication, timeout, TLS, or a rejected recipient - not a stack trace.

  1. 01

    Connect

    Host, port, TLS mode and credentials - prefilled from a provider preset or typed in.

  2. 02

    Verify

    transporter.verify() confirms the handshake and login before you commit to a send.

  3. 03

    Send

    One real message to one recipient, with the server's SMTP reply shown verbatim.

Connection

Provider preset

Port 465 = implicit TLS (secure on). Port 587 = STARTTLS (secure off). Port 25 is usually blocked by cloud providers.

Encrypted profiles

Save named SMTP configs encrypted in this browser with AES-256-GCM. The passphrase never leaves the page - lose it and the profiles are unrecoverable.

Compose test message

Attachment (optional, ≤1 MB)
Script it - cURL example
# Verify a connection
curl -X POST https://ping.abubakarshaikh.dev/api/smtp/verify \
  -H "content-type: application/json" \
  -d '{"config":{"host":"mail0.serv00.com","port":587,"secure":false,"username":"<username>","password":"<password>","fromName":"admin","fromEmail":"admin@abubakar.serv00.net"}}'

# Send a test email
curl -X POST https://ping.abubakarshaikh.dev/api/smtp/send \
  -H "content-type: application/json" \
  -d '{"config":{"host":"mail0.serv00.com","port":587,"secure":false,"username":"<username>","password":"<password>","fromName":"admin","fromEmail":"admin@abubakar.serv00.net"},"message":{"to":"<to@example.com>","subject":"Ping250 test - your SMTP config works","text":"Hello from Ping250.\n\nIf this landed in an inbox, your SMTP credentials, host and port are all correct."}}'

# In production (Turnstile enabled) add a valid token to the body:
#   "turnstileToken": "<token>"

Response

Waiting for a request. Verify the connection or send a test message and the SMTP conversation will stream here.

Deliverability diagnostics

Checks the sending domain's SPF, DKIM and DMARC DNS records - the three authentication records that decide whether mail lands in the inbox or the spam folder.

What Ping250 checks

Connection & authentication

Runs Nodemailer's verify() against your host and port with bounded timeouts, so a dead server or a wrong password fails in seconds - with the reason, not a stack trace.

The test send

Sends a single message to a single recipient. The server's reply - the 250 OK, or the 550 that explains why not - is surfaced exactly as the server sent it.

Deliverability records

Looks up SPF, DKIM and DMARC for the sending domain and tells you in plain English what is missing and why it pushes mail toward the spam folder.

Where your credentials go: your password travels from your browser to the server once, inside the request, and is used only to build a throwaway transport that is closed immediately. It is never written to a log, a database, or disk. Saved profiles are encrypted in your browser with a passphrase only you know.