100 free emails a day, no credit card

Sending emailshouldn't be this hard

Call one endpoint, and your verification codes and notifications arrive.

const res = await fetch("https://bulkmail.dev/emails", {
  method: "POST",
  headers: {
    "Authorization": "Bearer mk_your_api_key",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    from: "Acme <hello@acme.com>",
    to: "user@example.com",
    subject: "Your verification code is 382915",
    html: "<p>The code expires in 10 minutes.</p>",
  }),
});
202 Accepted{ "id": "9db6562a-d026-4c68…", "status": "queued" }
Features

You write the product code,we handle the email

01
TXT  bm1a2b._domainkey.acme.com  "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx…"
↓ Every message signed automatically
Authentication-Results: mx.google.com; dkim=pass header.d=acme.com; spf=pass; dmarc=pass

Automatic DKIM signing

Gmail knows it's really you

When you add a domain, we generate a 2048-bit key pair. Paste the public key into DNS, and every message is signed from then on.
02
Free
167.233.x.x
Pro
46.224.x.x
Dedicated
Yours alone

IPs isolated by plan

Other senders can't drag you down

Free users, paid users and dedicated-IP customers send from different IPs, so their reputations never mix.
03

Real-time webhooks

Status changes pushed to you instantly

Deliveries, delays, bounces and complaints all go to your webhook. Requests are signed, and we retry if your server is down.
04
alice@example.comSent
no-such-user@example.orgNo such address
bob@example.netSent
angry@example.comComplained

Bad addresses skipped

Your reputation stays intact

Addresses that don't exist and recipients who complained are skipped next time, so you don't keep hitting them.
05
A
Acme Team
Your verification code is 382915
G
GitHub
[GitHub] A new SSH key…

No garbled text

Subjects and names show as written

Chinese and other non-ASCII sender names and subjects are encoded to spec, so Gmail, Outlook and QQ Mail show exactly what you wrote.
How it works

Three steps to your first email

  1. 01

    Add a domain

    mail.acme.com Enter your domain in the dashboard and we generate the DNS records it needs.
  2. 02

    Add the DNS records

    Cloudflare · Route 53 · Alibaba Cloud Add them at your DNS provider. Once they're live we detect them automatically, so there's no need to come back and click verify.
  3. 03

    Call the API

    POST /emails Create an API key, send one POST request, and your email joins the send queue.
~/acme
$ curl -X POST bulkmail.dev/domains -d '{"name":"mail.acme.com"}'  201 Created · 4 DNS records to add $ dig +short TXT bm1a2b._domainkey.mail.acme.com  "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOC…"  ✓ mail.acme.com verified $ curl -X POST bulkmail.dev/emails -d @welcome.json  202 Accepted · {"id":"9db6562a…","status":"queued"}  ✓ Delivered to user@example.com (2.1s)
Delivery tracking

After it's sent,you can still see it

See what happened to every message and exactly what the receiving server said.

  • Authentication done rightAdd SPF, DKIM and DMARC by following the page, and all three align.
  • Automatic retriesWhen a receiver temporarily refuses, we try again later, for up to 3 days.
  • Quality at a glanceThe dashboard shows bounce and complaint rates for the last 7 days, so you catch problems early.
Your verification code is 382915
hello@acme.com → user@example.com
  1. QueuedPOST /emails · 202
  2. Signed and sentDKIM d=acme.com · TLS encrypted
  3. Accepted by receiver250 2.0.0 OK · gmail-smtp-in
// POST https://your-app.com/webhooks/mail
{
  "type": "email.delivered",
  "data": { "recipient": "user@example.com", "detail": "250 2.0.0 OK" }
}
Pricing

Start free, pay when you grow

FreeFREE
¥0/ month
Enough for side projects and test environments.
  • 100 a day · 3,000 a month
  • Shared sending IPs
  • Up to 10 recipients per email
Sign up free
ProPopularPRO
¥99/ month
For live products with real users receiving your mail.
  • 50,000 a month included, then ¥2 per 1,000
  • Sending IPs separate from free users
  • Up to 50 recipients per email
Sign up, then upgrade
Dedicated IPDEDICATED
¥699/ mo and up
For high-volume teams that can't compromise on delivery. We'll help you warm up the new IP.
  • 500,000 a month included, then ¥1 per 1,000
  • A dedicated IP, a reputation that's yours alone
  • Help warming up the new IP
Sign up, then upgrade

Prepay 3 months: 5% off · 6 months: 10% off · 12 months: 20% offEvery plan includes DKIM signing, webhooks, automatic bounce suppression, and the full API and docs. Pay monthly and cancel anytime.

FAQ

You might be wondering

For more detail, see the Docs.

What kind of email can I send?

Verification codes, signup confirmations, password resets, order and billing notices, system alerts: email that users trigger themselves and expect to receive. Unsolicited bulk advertising is not allowed. Accounts caught doing it are suspended, to protect everyone’s reputation.

Why do I have to verify a domain?

Gmail and Outlook now check SPF, DKIM and DMARC, and unauthenticated mail mostly goes straight to spam. Verification also proves the domain is yours, so nobody else can send in your name.

How do I pay, and how fast is activation?

Pay with USDT (TRC20) and your plan activates automatically a minute or two after the transfer confirms. To pay by Alipay, WeChat Pay or bank transfer, leave your contact details in the dashboard. We’ll reach out and activate your plan as soon as payment arrives.

What happens when I run out of free quota?

The API returns 429 and the email is not sent. The daily quota resets at 00:00 UTC, and the monthly quota resets on the 1st.

Do bounces and complaints affect me?

A few now and then are fine. Those addresses are suppressed automatically and skipped next time. But if your bounce or complaint rate over the last 7 days gets too high, your account is suspended, so don’t send to bought lists.

What if my mail lands in spam?

First check in the dashboard that your domain’s DKIM and SPF both show “Pass”, then add a DMARC record. Write like a person, not a page full of links and images. A new domain starts with average reputation, so ramp up volume gradually. Things get much better within a week or two.

Send your first email today

No credit card needed. 100 free emails a day.