01Request access and complete onboarding
Every MailEnv sender is reviewed before they can send. That keeps spammers off the shared infrastructure, and it's a big part of why mail sent through MailEnv is trusted. Request access, then sign in and fill out the onboarding form. It asks for:
- Your business: account type, legal name, website, and business address.
- A contact: name, email, and phone.
- What you're sending: transactional mail, product updates, newsletters, or something else, with a short description.
- How you got your list: how addresses were collected, plus a rough list size and monthly volume.
- Two compliance confirmations: that you have consent to email your recipients, and that you understand the acceptable use policy.
Be specific. A clear description of what you send and how people opted in is the fastest way through review. Most accounts are reviewed within 24 to 48 hours.
02Add and verify your sending domain
You send from your own domain, so MailEnv needs to prove you control it. In the dashboard, open Domains, click Add Sender Domain, and enter your domain in both Domain Name and Confirm Domain Name.
MailEnv then shows the DNS records to publish: DKIM, a custom MAIL FROM domain, and DMARC. Add them at your DNS provider, then click the Verify DNS Records button on the domain's page. Each record flips from Pending to Verified once it's visible.
403 Domain example.com not verified. Read the full domain guide.03Create an API key
Open API Keys, give the key a name that says where it's used (for example, production-web), and click Create API Key. Use the copy icon next to the key to copy it, and store it in your app's secrets, not in source code.
Leave Master Key unchecked. Your app only needs a standard key to send. More on API keys.
04Send your first email
Send a POST request to the send endpoint with your API key in the Authorization header. Send the raw key, without a Bearer prefix.
curl -X POST "https://pub-api.mailenv.com/api/v1/send-mail" \
-H "Authorization: your-api-key-here" \
-H "Content-Type: application/json" \
-d '{
"to": "dana@example.com",
"from": "billing@yourdomain.com",
"subject": "Your receipt",
"message": "Thanks for your order!",
"email_type": "tx"
}'All five fields are required. The from address must be on a domain you've verified. Set email_type to:
txfor transactional mail: receipts, password resets, sign-in codes, and alerts.promofor promotional mail to people who opted in.
A successful request returns 201 with a message ID. See the API reference for examples in Python, JavaScript, Go, PHP, and Ruby.
05Check the result in your email logs
Open Email Logs to see every message you've sent, newest first. Each one moves through statuses as Amazon SES reports back:
- Queued: accepted by MailEnv and waiting to send.
- Delivery: the receiving mail server accepted it.
- Bounce: the address couldn't receive mail. MailEnv blocks it from future sends.
- Complaint: the recipient marked it as spam.
- Reject: the message was refused before delivery.
queued_for_verification status, and the message goes out once the address checks out. How verification works.