Send your first email in five minutes.
A clean REST API, SDKs for Node, Python, and Go, and signed webhooks. Authentication, suppression, and throttling run on our side, so your code stays a single API call.
curl -X POST https://api.mailenv.com/v1/send \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "hello@yourdomain.com",
"to": ["user@example.com"],
"subject": "Welcome to MailEnv",
"text": "Thanks for joining!",
"tags": ["onboarding"]
}'import MailEnv from '@mailenv/sdk';
const client = new MailEnv({ apiKey: process.env.MAILENV_API_KEY });
await client.send({
from: 'hello@yourdomain.com',
to: ['user@example.com'],
subject: 'Hello from Node',
html: '<p>Welcome aboard.</p>',
tags: ['onboarding'],
});import os
from mailenv import Client
client = Client(api_key=os.environ["MAILENV_API_KEY"])
resp = client.send({
"from": "hello@yourdomain.com",
"to": ["user@example.com"],
"subject": "Hello from Python",
"text": "Thanks for joining!",
"tags": ["onboarding"],
})package main
import (
"log"
"os"
"github.com/mailenv/mailenv-go/mailenv"
)
func main() {
client := mailenv.NewClient(os.Getenv("MAILENV_API_KEY"))
err := client.Send(mailenv.Message{
From: "hello@yourdomain.com",
To: []string{"user@example.com"},
Subject: "Hello from Go",
Text: "Thanks for joining!",
Tags: []string{"onboarding"},
})
if err != nil {
log.Fatalf("send failed: %v", err)
}
}Three steps to production.
-
01
Get an API key
Request access and tell us what you send. Most accounts are reviewed within 24 to 48 hours.
Request access -
02
Install an SDK
Or skip it and call the REST endpoint directly from any language.
Node.jsnpm i @mailenv/sdkPythonpip install mailenvGogo get github.com/mailenv/mailenv-go -
03
Verify your domain and send
We give you the exact SPF, DKIM, and DMARC records and confirm alignment before you go live.
_dmarc.yourdomain.com TXT "v=DMARC1; p=quarantine"
The parts you'd otherwise build yourself.
REST + JSON
One endpoint, predictable JSON responses, and clear error messages you can act on.
SDKs
Official clients for Node.js, Python, and Go, or plain HTTP from anything else.
Signed webhooks
Delivery, bounce, and complaint events pushed to your endpoint, signed for verification.
Tags & metadata
Label every message by type so you can track auth, billing, and alert mail separately.
Suppression built in
Bounced and complained addresses are blocked before your request goes out. No extra code.
Dedicated IPs
Move to private IPs and isolated infrastructure when volume or compliance calls for it.
API reference
Endpoints, request fields, responses, and error codes, with examples in six languages.
Read the docsIntegrations
Send from Zapier, Make, Shopify, WordPress, Webflow, and more without writing a backend.
Browse guidesTalk to an engineer
Migrating from SendGrid, Mailgun, or raw SES? We'll help you move without a gap.
Get in touchShip critical email with one API call.
Get an API key, verify your domain, and let MailEnv handle the infrastructure around SES.