mailenv
All guides

The complete guide to sending your first email with MailEnv.

From request to first delivered email in five steps. This guide walks through the whole path, and links to a deeper guide wherever a step has more to it.

5 steps 8 min read

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.

You can't send until your domain is verified. A send from an unverified domain is refused with 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.

terminal
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:

  • tx for transactional mail: receipts, password resets, sign-in codes, and alerts.
  • promo for 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.
First send to a new address? MailEnv may verify the address before sending it. The API responds with a queued_for_verification status, and the message goes out once the address checks out. How verification works.
FAQ

Common questions

Stuck on a step? Talk to an engineer.

How long does it take to start sending?

Account review usually takes 24 to 48 hours. Domain verification finishes as soon as your DNS records propagate, which is often minutes and occasionally a few hours.

Do I need an AWS account?

No. MailEnv runs the Amazon SES side for you. You never need AWS credentials, IAM policies, or SES sandbox approval.

Why was my send refused with a 403?

The most common causes are a from address on a domain that isn't verified yet, a paused domain, or a recipient whose status is invalid or caution. The error message says which.

Can I send marketing email?

Yes, to people who opted in. Set email_type to promo so promotional mail is kept separate from your transactional mail.

Ready to send?

Request access, verify your domain, and send your first email through Amazon SES with one API key.