DKIM · SPF · DMARC — automated

Email Delivery Service

Easy integration, high delivery rate, and automatic DKIM, SPF and DMARC. Connect over API, SMTP or SDK and send your first email in a minute.

send.py — postwing
from postwing import PostwingSdk
 
sdk = PostwingSdk(
username="domain@example.com",
password="your-token",
)
sdk.send(
tpl="welcome",
recipient="user@example.com",
sender="noreply@example.com",
lang="en",
params={ "name": "Alex", "plan": "Pro" },
)
your code
real branded email

Easy integration

API, SMTP and SDK out of the box. Get connected in minutes — no changes to your app architecture.

High delivery rate

Warmed IPs, correct authentication and reputation monitoring — your mail lands in the inbox, not in spam.

DKIM · SPF · DMARC

Keys and DNS records are generated, published and rotated automatically. Authentication is set up for you.

// Integration

Connect the way you prefer

Three ways to send on one platform. Use the official SDK or connect directly over API and SMTP.

send.sh — curl
curl -X POST https://api.postwing.app/api/send \
-H "Authorization: Bearer your-token" \
-H "Content-Type: application/json" \
-d '{
"recipient": "user@example.com",
"sender": "noreply@example.com",
"subject": "Hello",
"body": "<h1>Welcome aboard!</h1>"
}'
// Deliverability

Email that reaches the inbox

Everything that usually breaks email — keys, records, policies, reputation — handled and monitored so your mail lands in the inbox.

01

DKIM auto-rotation

Keys generated, published, and rotated on a schedule. No manual selector juggling, no expired signatures.

02

SPF flattening

We collapse nested includes into a single optimized record that never trips the 10-lookup limit.

03

DMARC enforcement

Start at p=none, watch the aggregate reports roll in, then ramp to quarantine and reject with one click.

04

One-call SMTP / API

Drop-in SMTP relay or REST. Send your first message in under a minute with a scoped token.

05

Deliverability telemetry

Per-domain opens, bounces, complaints, and blocklist status streamed live.

06

Pay-as-you-send

Prepaid credits, volume bonuses, zero monthly minimums. Spend what you send.

// Inbound

Receive email, not just send it

Point a hostname you own at us and every message that arrives is parsed and POSTed to your service as a signed webhook — the mirror of the send API, with no mailbox to poll.

  • One MX record turns it on: inbound.yourdomain.com MX 10 mx.postwing.app
  • Routes decide what goes where — support, ticket-*, or * for everything else. The most specific one wins.
  • Each message arrives parsed: sender, subject, text and HTML bodies, headers, plus the DKIM result and whether it aligns.
  • The verbatim .eml and every attachment stay one authenticated link away, and the panel keeps a searchable log of what you received.
Inbound documentation
inbound.received — webhook
{
"event": "inbound.received",
"route": "support",
"recipient": "support@inbound.example.com",
"from": { "email": "alex@partner.com", "name": "Alex" },
"subject": "Invoice 4417",
"text": "Attached, as promised.",
"auth": { "dkim": "pass", "dkim_aligned": true },
"raw_url": ".../messages/<uuid>/raw/",
"attachments": [
{ "filename": "invoice.pdf", "size": 18422,
  "url": ".../attachments/<uuid>/" }
]
}
// Templates as code

Manage templates with Terraform

Describe your email templates in code with the official provider. Version control, code review, and identical templates across every environment.

  • Templates kept under version control alongside the rest of your infrastructure
  • Reproducible environments — dev, staging and prod from a single config
  • Ship through CI/CD with terraform apply instead of manual edits
Provider on Terraform Registry
templates.tf — terraform
terraform {
required_providers {
fmailer = { source = "skymanrm/fmailer" }
}
}
 
resource "fmailer_template" "welcome" {
name = "welcome"
subject = "Welcome!"
locales = ["ru", "en"]
body = file("templates/welcome.html")
}
// Control panel

Email looks — without a release

Change appearance, localizations and themes right in the control panel. No code edits, no app redeploy.

01

Appearance

Edit email content and styling visually. Changes apply instantly, with no redeploy.

02

Localizations

One template, many languages. Email is sent in the recipient's language automatically.

03

Themes

Light and dark themes, brand colors and styles — a consistent look across every scenario.

// Pipeline

Four steps to green

The same flow the dashboard walks you through when you add a domain.

STEP 1
Enter domain
STEP 2
Publish DNS records
STEP 3
Customize your emails
STEP 4
Send a test email
// Pricing

Pricing

Pay for what you send. Transparent rates with no hidden fees.

Crypto payments only

We accept crypto only. Top up your balance with USDC on Base or Ethereum (ERC20) — no cards, no invoices, no chargebacks. Your balance is shown in USD.

// FAQ

FAQ

What is your service?
An email delivery service: we send your transactional and bulk email so it reaches the inbox, and we handle DKIM, SPF, DMARC and reputation for you.
I want to send complex emails, with multiple conditions and variables inside the email, can I do that?
Of course! We are using great template renderer system called Jinja, which allows to implement any custom logic inside the email templates.
How I can send emails through your service?
Three ways: a REST API, an SMTP relay, or our official Python SDK. Pick whatever fits your stack best.
Can I manage email templates as code?
Yes. We publish an official Terraform provider, so you can describe templates in code, keep them under version control, and ship them through CI/CD.
Do you support webhooks?
Yes. Subscribe an HTTPS endpoint to events like delivery, bounce, open and unsubscribe, and we'll POST a signed JSON payload in real time — no polling required. See the Webhooks documentation.
Can I receive email as well as send it?
Yes, on paid plans. Point the MX of a subdomain — say inbound.yourdomain.com — at us, add routes for the addresses you care about, and every message that arrives is POSTed to your service as an inbound.received webhook, already parsed, with links to the raw .eml and each attachment. It is not a mailbox: nothing is kept for a human to read, it goes to your application. See the inbound documentation.
Where I can find example or documentation?
All examples and documentation available Documentation and Examples

Start delivering email today

Connect a domain, get a token, and send your first email in a minute.

▶ Start for free