Good email deserves to reach the inbox.
Transactional and marketing email for developers. Send through the API or SMTP and follow every message, from send to click.
3,000 emails per month on the Free plan. No credit card required.
One request. Your email is in the queue.
A plain REST API with key authentication and JSON responses. If your system only speaks SMTP, use the same keys as the password and change nothing else.
- Keys scoped to a workspace or restricted to one domain
- Idempotency keys so a retry never sends twice
- Schedule a send and cancel it while it is queued
- Attachments up to 10 MB, base64 over the API or plain SMTP
- Reply-to and inline images in your HTML
curl -X POST 'https://smtp2u.com/api/emails' \ -H 'Authorization: Bearer nm_your_api_key' \ -H 'Content-Type: application/json' \ -H 'Idempotency-Key: order-123-confirmation' \ -d '{ "from": "Acme <hello@yourdomain.com>", "to": "customer@example.com", "reply_to": "support@yourdomain.com", "subject": "Order confirmed", "html": "<h1>You are all set!</h1>", "attachments": [ { "filename": "receipt.pdf", "content": "JVBERi0xLjQK…" } ] }' # 202 Accepted # {"id":"2ddfb6e9-d0e7-4433-ad24-172de771eee0","status":"queued"}
const res = await fetch('https://smtp2u.com/api/emails', { method: 'POST', headers: { 'Authorization': 'Bearer ' + process.env.SMTP2U_KEY, 'Content-Type': 'application/json', 'Idempotency-Key': 'order-123-confirmation' }, body: JSON.stringify({ from: 'Acme <hello@yourdomain.com>', to: 'customer@example.com', subject: 'Order confirmed', html: '<h1>You are all set!</h1>' }) }); const { id, status } = await res.json(); // use the id to follow every event of this email
$ch = curl_init('https://smtp2u.com/api/emails'); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . getenv('SMTP2U_KEY'), 'Content-Type: application/json', ], CURLOPT_POSTFIELDS => json_encode([ 'from' => 'Acme <hello@yourdomain.com>', 'to' => 'customer@example.com', 'subject' => 'Order confirmed', 'html' => '<h1>You are all set!</h1>', ]), ]); $email = json_decode(curl_exec($ch), true); // $email['id'] identifies the message in every event
import os, requests r = requests.post( 'https://smtp2u.com/api/emails', headers={'Authorization': 'Bearer ' + os.environ['SMTP2U_KEY']}, json={ 'from': 'Acme <hello@yourdomain.com>', 'to': 'customer@example.com', 'subject': 'Order confirmed', 'html': '<h1>You are all set!</h1>', }, ) print(r.status_code, r.json()) # 202 {'id': '2ddfb6e9-…', 'status': 'queued'}
# Any system that speaks SMTP: CRM, store, website, ERP. Host smtp.smtp2u.com Port 465 (SSL/TLS) or 587 (STARTTLS) alternatives: 2465 and 2587 Username smtp2u Password your API key (nm_…) # The sender must be on a domain verified in your workspace. # Attachments up to 10 MB. Everything shows up in Emails, Logs # and Metrics, with opens and clicks, just like the API.
Know what happened to every email.
No black box. Each message keeps its history, content, events and the log of the request that created it.
Real-time events
Get a call on your server when an email is sent, delivered, opened, clicked, bounced or marked as spam. Signed webhooks with automatic retries.
Logs for every request
See what your application sent and what the API answered, by key and by client. SMTP sends land in the same place.
Metrics that matter
Delivery rate, bounces by type, complaints, opens and clicks by day and by domain, with the risk thresholds marked.
Deliverability insights
Every message is checked: no-reply senders, images and links outside your domain, DMARC, plain-text version, body size.
Campaigns and contacts
Import your list, segment it, build templates and send campaigns with one-click unsubscribe. Automations triggered by events.
Team and security
Invite your team to the workspace, create send-only keys and revoke them at any time. Keys are stored only as hashes.
Reach the inbox, not the spam folder.
You send from your own domain, authenticated end to end. SMTP2U shows the DNS records, checks propagation and protects your reputation while you send.
- DKIM, SPF and return path on your own domain
- Automatic verification of your DNS records
- Suppression list: bounces and complaints never get a second email
- Visual alerts when bounce or complaint rates pass the safe limit
- Delivery on Amazon SES infrastructure
Illustrative numbers from the Metrics page.
Start free. Pay for what you send.
Prices in US dollars, billed monthly to your card. Change plans or cancel whenever you want.
Free
- 3 domains
- API, SMTP and webhooks
- Metrics, logs and insights
- Campaigns, contacts and templates
Pay by volume
- 5 domains
- No daily limit
- Sending never stops at the limit
- Everything in Free
High volume
- Domains as needed
- No daily limit
- Priority support
- Everything in the volume plans
The Free daily limit resets at midnight UTC. On paid plans, anything above the limit goes on the next invoice. Prices in US dollars, billed monthly.
Before you start
Do I need my own domain?
Yes. Email always goes out from a domain you own, verified in the dashboard. You publish a few DNS records (ownership, DKIM, SPF and return path) and SMTP2U checks propagation for you.
Can I send right after signing up?
You can add your domain and create keys right away. The first send is unlocked after a quick account review by our team, which protects the sending reputation of every customer.
What is the difference between the API and SMTP?
None in the result. Both go through the same queue, count against the same quota and appear in Emails, Logs and Metrics with opens and clicks. Both accept attachments up to 10 MB.
What happens when I go over my plan limit?
On Free, sending pauses until the next day or the next month. On paid plans sending continues and the extra emails are billed at $0.90 per 1,000 on the next invoice.
Can I use purchased lists?
No. You may only send to people who asked for or expect your message. See the Acceptable Use Policy.
How does billing work?
Paid plans are monthly subscriptions in US dollars, processed by Stripe. You can change plans with prorated billing, download invoices and cancel from the dashboard. Cancellation takes effect at the end of the period already paid.
Your next email
can leave from here.
Create the workspace, verify your domain and send the first message today.