Every login link and receipt, accounted for.
Send account email with one API call. Postar signs it, delivers it, and tells you in plain words what happened. When a message doesn't arrive, you see why.
Transactional mail only: messages a person triggers by using your product.
- 0.00saccepted202, queued for delivery
- 0.01squeuedproject "Acme web", rate limit ok
- 0.34ssignedDKIM d=postar.vip s=mail
- 0.52sconnectedgmail-smtp-in.l.google.com, TLS 1.3
- 0.91sdelivered250 2.0.0 OK
- 0.00saccepted202, queued for delivery
- 0.01squeuedproject "Acme web", rate limit ok
- 0.34ssignedDKIM d=postar.vip s=mail
- 0.55sconnectedmx.example.com, TLS 1.3
- 0.83srejected550 5.1.1 User unknown
- 0.84sexplainedThis address doesn't exist. It is blocked from now on, so you stop sending to it.
Built around the life of one message
Most email problems happen before the send or after it. Postar covers both ends.
Before you send
- Test without sending
- Mail to
localhostand.testaddresses lands in a built-in inbox. See how it looks. Nothing leaves the system, and it costs nothing. - One project per app
- Each app gets its own keys and the sending domains it may use. Revoke a key and it stops working immediately.
- A cap on mistakes
- Every key has an hourly limit, so a bug in a loop can't flood your users.
While it sends
- Signed and authenticated
- DKIM-signed, from a domain with SPF and DMARC. Use ours, or add yours and publish the records we show you.
- Unsubscribe that works
- Messages can carry one-click unsubscribe (RFC 8058). People who opt out stay opted out.
- Sent in the background
- Your call returns immediately with a message id. Delivery doesn't slow your login page down.
After it sends
- See every message
- Delivered, queued and failed, per day and per project, with the full path of each message.
- Failures in plain language
- A bounce tells you what the receiving server said and what to do next, and failed messages can be retried.
- Bad addresses blocked
- Bounced and complaining recipients are suppressed automatically, which protects your sender reputation.
One endpoint. Your language.
Authenticate with a project key and post JSON. Anything that can make an HTTP request can send email.
- 202 means acceptedThe message is queued. Its final state shows up in the dashboard.
- Clear errors401 for a bad key, 403 for a domain the key can't use, 422 for an invalid message, 429 at the limit.
- Ready-made helpersA PHP SDK and a Yii2 component are included. The API docs cover other languages.
// Node 18+, no dependencies const res = await fetch("https://api.postar.vip/v1/send", { method: "POST", headers: { Authorization: `Bearer ${process.env.POSTAR_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ from: "login@postar.vip", to: user.email, subject: "Your login link", html: `<a href="${link}">Log in</a>`, text: `Log in: ${link}`, }), }); // 202 { "id": "7c41e0b2...", "status": "queued" }
You pay for email that is sent
One credit per message that leaves. Sandbox mail is free. Allowances refill every 30 days.
Pro
Unlimited projects and keys. Subscribe from Billing in the dashboard.
Sending that stays welcome
Postar is for transactional mail. It isn't for newsletters, bulk marketing, purchased or scraped lists, or phishing, and projects that abuse it are suspended.
Got a message from us you didn't expect? Use the unsubscribe link in it, or report it to office@rapttor.com.