Skip to content

A Mailgun alternative that costs less at every volume we checked.

Samva costs less than Mailgun at every volume we checked, and replies thread to the email they answer instead of passing through inbound routes. Need your own IP? Samva sells a dedicated IP as an add-on.

Prices checked September 29, 2026

Who should switch, and who should stay.

Switch if
  • You pay for Foundation to get more than one domain or longer logs.
  • You want replies threaded to the email they answer, not routed through inbound routes.
Stay on Mailgun if
  • You send through SMTP. Mailgun offers SMTP; Samva sends through its API.

What a month costs on each.

Monthly cost of outbound email on Samva and Mailgun at four volumes
Provider10k/mo50k/mo100k/mo500k/mo
Samva$5Starter$19Growth$44Growth plus 50,000 extra at $0.50 per 1,000$199*Scale plus 200,000 extra at $0.50 per 1,000
Mailgun$15Basic, 10,000 emails$35Foundation, 50,000 emails$75Foundation, 100,000 emails$400Scale, 500,000 emails
  • * Needs the spend limit raised from its $50 default.

Mailgun lists tiers up to 2.5M emails a month and includes one dedicated IP from Foundation 100k. Email validation is billed separately.

What each one ships.

Send and receive

How you send email, build templates, and bring replies back.

Send API

Samva

Typed REST API with an OpenAPI spec

Mailgun

RESTful API and SMTP; batches up to 1,000 emails per call

Templates

Samva

Versioned, Git-backed TSX templates with rollback and publish history

Mailgun

Email templates on every plan

Inbound email

Samva

Replies thread to the email they answer, delivered as a signed message.received webhook

Mailgun

Inbound routes: 1 on Free, 5 on Basic, full routing on Foundation and Scale

Delivery and visibility

How you follow delivery, observe engagement, and protect your sending.

Webhooks

Samva

Signed Standard Webhooks events, with backoff and up to 8 automatic delivery attempts

Mailgun

Webhooks for accepted, delivered, temporary_fail, permanent_fail, opened, clicked, unsubscribed, and complained

Opens and clicks

Samva

Samva's own open pixel and tracked links, signed message.opened and message.clicked webhooks, and a timeline in the dashboard and API

Mailgun

Opened and clicked webhooks, plus logs and analytics

Deliverability

Samva

Generates DKIM and SPF records and checks your DMARC policy; bounces and complaints suppressed automatically

Mailgun

SPF, DKIM, and DMARC; validation billed separately; one dedicated IP included from Foundation 100k

Integration tools

The SDKs and tools you can build with.

SDKs

Samva

TypeScript SDK with async/await and Effect-native interfaces

Mailgun

SDKs across multiple languages

Volume and billing

What you can send for free and how extra volume is billed.

Free plan

Samva

500 emails a month, up to 100 a day

Mailgun

100 emails a day, with 1-day log retention

Past the allowance

Samva

Metered at $0.50 per 1,000 on paid plans, up to a spend limit you set

Mailgun

Metered per 1,000, from $1.80 on Basic; rates fall on larger tiers

Moving from Mailgun.

  1. Add your domain and publish the DKIM and SPF records Samva generates next to the old provider's. Both can send while you switch.

  2. Swap the send call.

    Mailgun Node SDK
    const formData = require("form-data");
    const Mailgun = require("mailgun.js");
    const mailgun = new Mailgun(formData);
    const mg = mailgun.client({ username: "api", key: process.env.MAILGUN_API_KEY });
    
    await mg.messages.create("mg.example.com", {
      from: "Acme <mailgun@mg.example.com>",
      to: ["ada@example.com"],
      subject: "Your receipt",
      html: "<p>Thanks for your order.</p>",
    });
    
    Samva
    await samva.messages.send({
      from: { email: "orders@example.com" },
      to: [{ email: "ada@example.com" }],
      channel: "email",
      email: {
        subject: "Your receipt",
        html: "<p>Thanks for your order.</p>",
      },
    });
  3. Map webhooks. Samva sends signed events for sent, delivered, bounced, complained, failed, and received, with received going to the endpoint your domain's receiving route names. Opens and clicks arrive as message.opened and message.clicked, and unsubscribes as contact.unsubscribed.

    Mailgun eventSamva event
    deliveredmessage.delivered
    permanent_failmessage.bounced
    complainedmessage.complained
    openedmessage.opened
    clickedmessage.clicked
    unsubscribedcontact.unsubscribed
  4. Recreate templates as versioned templates, or send your existing HTML inline while you move.

  5. Keep the old provider's suppression list in your app and filter against it. Samva cannot import it.

  6. Turn on receiving if you want replies back.

What does not move: templates, the suppression list, and message history.

The full walkthrough: Migrate Mailgun inbound routes.

Mailgun's log retention is 1 day on Free and Basic, 5 days on Foundation, and 30 days on Scale. That matters the first time you debug a delivery problem from last week, so price the tier that keeps logs as long as you need.

Questions before you switch.

What do I get for free?

Mailgun's free plan allows 100 emails a day, with 1-day log retention and one inbound route, checked Sep 29, 2026. Samva's free plan is 500 emails a month, up to 100 a day.

What does 50,000 emails a month cost?

Checked Sep 29, 2026: Mailgun's Foundation plan includes 50,000 emails for $35 a month. Samva's Growth plan includes 50,000 emails for $19 a month.

Which Mailgun plans include a dedicated IP?

Mailgun's pricing page says one dedicated IP is included with Foundation 100k and Scale, and that access starts at 50,000 emails. Samva lists a dedicated IP as an add-on on its pricing page.

Do Mailgun's opened, clicked, and unsubscribed webhooks have a Samva equivalent?

Yes. Samva sends signed message.opened and message.clicked webhooks for tracked sends, and contact.unsubscribed when a recipient unsubscribes from a topic, alongside sent, delivered, bounced, complained, failed, and received.

Related Resources

Send your first email free.

500 emails a month, no card. When you outgrow it, the bill stays predictable.