A host, a port, and email that lands.
Send transactional email over plain SMTP from any language or framework. Cosmoner generates the DKIM keys, hands you the DNS records, and enforces the sender address on every message.
- 587 standard SMTP port
- 3 DNS records, generated
- USD 1.50 per 1,000 emails, pay as you go
- USD 10 a month for 10,000 emails
const transporter = nodemailer.createTransport({ host: "smtp.cosmoner.com", port: 587, auth: { user: "smtp_abc123", pass: process.env.SMTP_PASSWORD, },});
- TXT datablock._domainkeyDKIM ✓
- TXT acme.comSPF ✓
- TXT _dmarc.acme.comDMARC ✓
PROTOCOL
SMTPport 587
Works with any client library
AUTHENTICATION
All three
SPF, DKIM, and DMARC configured
PRICING
USD 1.50/ 1,000 emails
Or a plan from USD 10 / month
CEILINGS
3
Your monthly cap, daily and hourly guards
Domain to first send
Three steps, none of them DNS guesswork
The hard part of transactional email is authentication, and it is the part most likely to be got subtly wrong. Cosmoner generates the records rather than documenting them.
- 01
Enable email on a domain
Pick a domain in your project. Cosmoner generates the DKIM keys and hands you the three DNS records to publish.
- 02
Publish the records and verify
Add the DKIM, SPF, and DMARC records, then run verification. The domain goes active as soon as they resolve and the project has a payment method.
- 03
Create a credential and send
Each credential is tied to one sender address. Point any SMTP client at smtp.cosmoner.com on port 587 and you are sending.
What the relay handles
Familiar on your side, managed on ours
Your application speaks the SMTP it already knows. Everything that decides whether the message reaches an inbox is Cosmoner's problem.
Plain SMTP, any language
A host, a port, a username, and a password. Nodemailer, ActionMailer, PHPMailer, or whatever your framework already ships with works unchanged.
smtp.cosmoner.com : 587
DNS records generated for you
Enabling email on a domain generates its DKIM keys and returns the exact SPF, DKIM, and DMARC records to publish. Nothing to compose by hand.
SPF · DKIM · DMARC
One credential per sender
Each credential carries its own from address, and the relay enforces it on every message. A leaked key cannot start sending as somebody else.
From header is enforced
A cap you set, and guards under it
A monthly cap you choose, so a bill never runs past it, plus rolling daily and hourly limits. Hourly and daily pauses lift on their own as the window drains, and the biller is emailed when sending pauses.
Monthly · daily · hourly
Delivery metrics built in
Delivery rates, bounces, complaints, and send volume in the control panel, so tracking email health does not need a third-party tool.
No extra service
Authenticated, so it lands
Full SPF, DKIM, and DMARC alignment out of the box, with managed IP reputation, bounce handling, and complaint feedback loops behind it.
Managed reputation
One credential, one sender
The From header is not up to the caller
A credential is created with a from address, and the relay rewrites every message to use it. That makes a credential a sender identity rather than just a password.
- Create one credential per sender — noreply, billing, support — and label them after what uses them.
- A leaked credential cannot be repurposed to send as a different address on your domain.
- Credentials are listed and deleted independently, so retiring one service does not touch the others.
- The username and password are returned when the credential is created — store them where your app reads its config.
{ "label": "Transactional", "fromAddress": "[email protected]"}
# every message from this credential sends asFrom: [email protected]# whatever the client put there
Pricing and send limits
Pay per email, or pick a plan
Pay as you go has no monthly fee and bills every email. A plan includes a monthly allowance for a flat price and bills the emails beyond it at a lower rate — Starter is the cheaper choice from about 6,700 emails a month, and each plan after it at a round number: 20,000 on Starter, 100,000 on Pro, 300,000 on Scale.
- Pay as you go
- No monthly fee
- Every email billed, USD 1.50 / 1,000 emails. 100 / hour · 500 / day.
- Starter
- USD 10 / month
- 10,000 emails / month, then USD 1 / 1,000 emails. 200 / hour · 1,000 / day.
- Pro
- USD 20 / month
- 50,000 emails / month, then USD 0.80 / 1,000 emails. 1,000 / hour · 5,000 / day.
- Scale
- USD 60 / month
- 150,000 emails / month, then USD 0.60 / 1,000 emails. 4,000 / hour · 20,000 / day.
- Business
- USD 150 / month
- 500,000 emails / month, then USD 0.40 / 1,000 emails. 15,000 / hour · 75,000 / day.
Every recipient counts as one email, and every email counts against a monthly cap you set. On a plan the cap starts at the allowance, so nothing beyond it is billed until you raise it. Hourly and daily limits beyond your plan's can be requested.
One project
What it plugs into
Email is enabled on a domain in your project and consumed by the apps in it, which is why neither step needs credentials copied between accounts.
Questions worth answering up front
Setup, credentials, and send limits are covered step by step in the SMTP guide.
- What do I need before sending?
- A project with a payment method and a domain in it — purchased through Cosmoner or migrated here. Email is enabled per domain, not per project, and every email is billed, starting on Pay as you go.
- How long does DNS verification take?
- Usually minutes, though propagation can take up to 48 hours. Verification is something you trigger, so you can retry as the records appear rather than waiting on a schedule.
- Can one credential send as several addresses?
- No, and deliberately so. The relay replaces the message's From header with the credential's configured address, so create a separate credential for each sender you need.
- What happens when I hit a limit?
- Sending pauses and the biller is emailed. Hourly and daily pauses lift on their own once the rolling window drains; a reached monthly cap holds until the next period, or until you raise it, which resumes sending immediately.
- How do I send more?
- Raise the monthly cap — on Pay as you go every email is billed up to it, and on a plan the emails beyond the allowance are billed at the plan's rate — or move to a plan with more included. Both are self-service in the control panel. Each plan comes with its own hourly and daily limits; beyond those, higher limits are requested, and the Cosmoner team reviews each request.
- What happens if I go over my plan's allowance?
- Nothing you did not choose. On a plan, the monthly cap starts at the plan's allowance, so sending pauses there and nothing beyond it is billed until you raise the cap. On Pay as you go, the cap is your budget: every email is billed, and sending pauses when the cap is reached.
When sending pauses
A pause, not a silent drop
Exceeding any ceiling stops sending rather than degrading quietly, and the biller is emailed so somebody knows before customers do.
A burst guard. The pause lifts on its own as the rolling window drains, with no action needed from you.
The same mechanism over a longer window — a bad deploy costs you a delay, not the month's budget.
Your cap, so the bill never passes it. A reached cap holds until the next period begins, or until you raise it — which resumes sending immediately.