Email (SMTP)

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
smtp.cosmoner.com : 587ACTIVE
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.

  1. 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.

  2. 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.

  3. 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.
POST /v1/projects/:projectId/email/:emailDomainId/credentials201
{  "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.

Hourly

A burst guard. The pause lifts on its own as the rolling window drains, with no action needed from you.

Daily

The same mechanism over a longer window — a bad deploy costs you a delay, not the month's budget.

Monthly

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.

Ready to get started?

Create your free account and deploy your first project in minutes.