# Nexmail: the whole site in plain text > Free team email on your own domain. Nexmail gives your whole team addresses at your domain, receives through Resend’s inbound or your Gmail, sends through your own Resend, Brevo or Google account, and puts every message in one shared inbox routed to Slack, with a team calendar, booking links and a meeting notetaker alongside. All you need is your domain. Nexmail gives your whole team email addresses at your own domain, for free. Mail for your domain arrives through Resend’s inbound (or your own Postfix or Mailu server) and replies leave through your own Resend or Brevo account; both providers have free plans that cover a small team. Nexmail itself is free for up to 9 seats (people plus shared mailboxes); the Team plan adds more seats, the meeting notetaker and the AI calendar reader. A Gmail or Google Workspace account can be connected with an app password instead, with no DNS changes. Every message lands in one shared inbox and is announced in the Slack channel that owns its address. Replies fail over between providers, and a message with no provider available waits in the queue instead of failing. A team calendar syncs both ways with Google, Outlook and CalDAV calendars and fills itself from invites and meeting times in email. Booking links let people pick a free time, and on the Team plan a notetaker joins Meet, Zoom and Teams calls and leaves a transcript and summary on the email thread. AI tools such as Claude, Claude Code and Cursor can connect to Nexmail as an MCP server to read, search, send and answer mail and manage calendar events, limited to what the person who connected them can see. ## What happens to every email Source: https://app.nexmail.nexprove.com/features ### 1. Receive Mail for your domains arrives through Resend or your own mail server. - Inbound through Resend, or a self-hosted Postfix or Mailu relay that posts signed messages. - A webhook that cannot save a message answers with an error, so the sender retries instead of the mail vanishing. - Duplicate deliveries are recognised and stored once. - Attachments are kept on local disk or any S3-compatible bucket. ### 2. Route Each address belongs to a Slack channel, set by rules you control. - Rules for an exact address, a whole domain, a domain fallback and a workspace fallback, checked in that order. - Mail that matches nothing is stored and listed under Unrouted. It is never discarded. - Replies stay in one Slack thread, and moving a route moves the next message with it. ### 3. Answer A shared inbox where the team assigns, labels, notes and replies. - Assign a conversation, add labels, and leave notes only your team can see. - Snooze a thread until later, or set a follow-up that brings it back if nobody replies. - Drafts save as you type. Reply from the inbox, the compose page or straight from Slack. - Changed your mind? Every send has a few seconds to undo it. - Forward a message or a whole thread, attachments included. - Mark a thread unread for the whole team, and see who has already read it. - Move a conversation to Trash and restore it later. Nothing in Trash is deleted. - Keyboard first: j and k to move, x to select, Enter to open, c to compose, ? for the full list. - An assistant suggests tidy-ups, like threads nobody owns, and changes nothing until you click. ### 4. Check Every send is read for problems the recipient would see before it leaves. - Stops a link whose text names one site and opens another, an executable attachment, a spoofed display name, or an address that unsubscribed. - Warns, and never blocks, on SPF, DKIM, DMARC and provider health. - An override is allowed and recorded in the audit log under the name of the person who made it. ### 5. Send Replies go out through whichever provider is healthy, and wait when none is. - Resend, Amazon SES, Brevo, SMTP2GO or any SMTP server, in an order you choose. - Three failures in a row open a provider’s breaker and traffic moves to the next one. - With no provider available, mail waits in the queue. It is never marked failed for that. - Bounces and complaints come back from each provider and update the suppression list. ### 6. Limit Daily ceilings and an emergency stop keep a mistake from becoming a flood. - Daily limits for the whole workspace, for each provider and for each sending domain. - Reaching a limit schedules mail for the next window rather than failing it. - One switch in Settings holds every outgoing message. Incoming mail keeps arriving. ## Calendar, booking links and meetings - **Team and personal calendars.** A Team calendar everyone shares, your own private one, and the calendars you already use. Google, Outlook, iCloud, Fastmail and any CalDAV server sync both ways; any calendar link (ICS) can be added read-only. - **Meetings straight from your email.** Invites, with their updates and cancellations, land on the calendar exactly. “Call on Thursday at 3pm” in an email becomes a tentative event, and each thread shows the meetings it set up. - **Quick add in plain words.** Type “Lunch with sam@acme.com Friday 1pm for an hour” and the event opens filled in for you to check. Nothing is saved until you do. - **Booking links.** Share a link and people pick a free time from your calendars. The booking lands on your calendar with an invite for both of you, a Google Meet link when it goes on a Google calendar, and a link to cancel. - **Meeting notetaker.** On the Team plan, send a notetaker to a Meet, Zoom or Teams call. The transcript and a summary land on the event, on the email thread and in its Slack thread. ## Also included - **Sales pipeline and leads.** Turn it on in Settings and everyone who replies lands on a pipeline board, with stages, owners, a due-today list, bulk actions and campaigns started from a selection. - **Draft with AI.** With the sales pipeline on, ask for a first draft of a reply, a new email or a campaign. It fills the composer and nothing else: a person reads it, edits it and presses Send. - **Gmail and Google Workspace.** Connect a Gmail or Workspace account with an app password and skip DNS entirely. Mail arrives in Nexmail and replies go out through Google as you. - **Outreach campaigns.** Import recipients from a spreadsheet, a paste or the CRM, review the list, get it approved and send within your limits. Schedule and pace a campaign, follow up until someone replies, and A/B test the subject. Opens, clicks and one-click unsubscribe are built in. - **Contacts and newsletters.** Everyone you email becomes a contact. Import more, sort them into lists and tags, and run newsletters with a public sign-up page. - **Templates with variables.** Save a subject and body once and use it in compose or in a campaign. Variables like {{first_name|there}} fill in from the contact, and every edit keeps its own version. - **AI tools over MCP.** Connect Claude, Cursor or another MCP client. It can read, search, send and reply, list, create, move and delete calendar events and find free time, but only within what the person who connected it can see, and it cannot override a blocked send. - **Separate workspaces.** Each organisation has its own domains, inbox, routes, providers and team. Nothing crosses from one to another. - **Guided domain setup.** Nexmail lists the DNS records to publish, or publishes them for you on Cloudflare, Vercel or DigitalOcean, checks each one through public resolvers and finishes with a test send. - **Team and roles.** Invite people by email, choose who is an admin, and let anyone reset a forgotten password on their own. - **Your logo on outgoing mail.** Upload a logo once and it appears in the messages your team sends. - **A record of every message.** Every email in and out is stored with its delivery history, so “did it arrive?” takes seconds to answer. ## Keyboard shortcuts in the inbox - `j / ↓`: Next conversation - `k / ↑`: Previous conversation - `x`: Select - `Enter`: Open - `c`: Compose - `Shift+U`: Mark unread - `#`: Move the open thread to Trash - `/`: Search - `Esc`: Clear selection - `?`: Show every shortcut ## Integrations Source: https://app.nexmail.nexprove.com/integrations ### Sending Connect one or several. Nexmail fails over between them. - Resend (live): Connect in one click, or paste an API key. Sends through the Resend API, with delivery and bounce events. - Gmail and Google Workspace (live): Sends as your Google address with an app password, within Google’s daily limit. No DNS changes. - Amazon SES (live): Sends through SES, with bounces and complaints delivered over SNS. - Brevo (live): SMTP relay for campaigns and bulk mail, with delivery feedback. - SMTP2GO (live): SMTP relay for campaigns and bulk mail, with delivery feedback. - Any SMTP server (live): Your own server or any relay that speaks authenticated SMTP. - Postmark (planned): A native Postmark transport. - Mailgun (planned): A native Mailgun transport. ### Receiving How mail for your domains reaches Nexmail. - Resend inbound (live): Resend receives your mail and hands every message to Nexmail. - Gmail and Google Workspace (live): Nexmail reads your Gmail inbox about once a minute. Nothing is moved or deleted in Gmail. - Postfix or Mailu (live): Your own mail server posts each message, signed with a shared secret. - Amazon SES receiving (exploring): Receive through SES instead of Resend. ### Team chat Where your team hears about new mail. - Slack (live): New mail posts to the right channel, threads stay together, and replies can be sent from Slack. - Microsoft Teams (exploring): The same routing, into Teams channels. ### Calendars Bring the calendars your team already uses. Connect them under Settings → Calendars. - Google Calendar (live): Two-way sync: events you add in Nexmail appear in Google, and the other way round. - Outlook and Microsoft 365 (live): Two-way sync with your Outlook calendars. - CalDAV (live): iCloud, Fastmail or any CalDAV server, two-way, with an app-specific password. - Calendar link (ICS) (live): Any calendar that publishes a link, shown read-only. ### Meetings The notetaker joins the call for you. Team plan. - Google Meet (live): The notetaker joins, then leaves a transcript and summary on the event and the email thread. Booking links can create a Meet link too. - Zoom (live): The notetaker joins Zoom calls on your calendar. - Microsoft Teams (live): The notetaker joins Teams calls on your calendar. ### API and AI tools For tools that send and read mail without a person. - REST API (live): Machine credentials, created by an admin, for launching approved campaigns and reading results. - Claude and MCP clients (live): Add Nexmail as a connector in Claude, or point Claude Code, Cursor or any MCP client at it, to read, search and answer mail and manage calendar events. - Outgoing webhooks (planned): Tell your own systems when mail arrives, is answered or bounces. ### Domains and storage The pieces around the mail itself. - One-click DNS (live): Paste an API token from Cloudflare, Vercel or DigitalOcean and Nexmail publishes the records for you. - Any DNS host (live): Nexmail lists the records and checks them through public resolvers, wherever your DNS lives. - S3-compatible storage (live): Keep attachments in Amazon S3, Cloudflare R2 or any S3-compatible bucket. ## Roadmap Source: https://app.nexmail.nexprove.com/roadmap In progress means being built now; planned means decided and designed, not built. Neither is available yet, and nothing has a date until it ships. ### Recently shipped Live in the app today. - **Calendar with two-way sync.** A Team calendar and your own, alongside Google, Outlook and CalDAV calendars that sync both ways, and any calendar link read-only. - **Email to calendar and quick add.** Invites and meeting times in your email land on the calendar by themselves, and you can type an event in plain words. - **AI tools manage your calendar.** Claude and other MCP clients can list, create, move and delete events and find free time. - **Booking links.** A public page where people pick a free time from your calendars, with a cancel link in every confirmation. - **Meeting notetaker.** A bot joins Meet, Zoom and Teams calls and leaves a transcript and summary on the email thread. Team plan. - **AI reply drafts.** Draft with AI writes a first draft of a reply, a new email or a campaign. A person reads and sends it. - **Connect with Resend.** Connect Resend in one click instead of pasting an API key. - **Team plan.** More than 9 seats and the notetaker, billed monthly through Lemon Squeezy. - **Transfer or delete an organization.** Hand ownership to another member, or delete the organization and everything in it. - **Dark mode for mail.** Email bodies are drawn dark in dark mode, with one click back to the original colours. - **Feedback page.** Request a feature or report a bug from the site or the app. - **Privacy Policy and Terms.** Published, including how Google user data is handled. - **Gmail and Google Workspace.** Connect a Gmail or Workspace inbox with an app password, with no DNS changes. Mail arrives in Nexmail and replies go out through Google. - **Sales pipeline.** A pipeline board and lead list for the people you are talking to, with stages, owners, a due-today queue, bulk actions and draft campaigns from a selection. Turn it on in Settings. - **DMARC reports filed for you.** The daily reports mail providers send about your domain, filed away automatically instead of filling the inbox. - **Connect AI tools over MCP.** Add Nexmail to Claude as a connector, or use Claude Code, Cursor and other MCP clients. They read, search and answer mail within the access of the person who connected them. - **Undo send.** A few seconds after every send to take it back. - **Templates with variables.** Saved subjects and bodies for compose and campaigns, with fallbacks for missing fields and a version kept for every edit. - **Forward.** Forward one message or a whole thread, attachments included. - **Trash.** Move conversations out of the way and restore them. Nothing is deleted. - **Mark unread and seen by.** Mark a thread unread for the whole team, and see which teammates have read it. - **Contacts and newsletters.** Everyone you email becomes a contact. Sort and segment them, run newsletters with public sign-up pages, and start campaigns from a list. - **Campaign scheduling and follow-ups.** Pace a campaign over days and follow up automatically until someone replies. - **General mailboxes.** support@, info@ and others, each shared with everyone or only the people you choose. - **One-click DNS.** Publish your domain records through Cloudflare, Vercel or DigitalOcean instead of copying them. ### Planned Decided and designed. Not built yet. - **AI triage.** Suggested labels, owners and routes for incoming mail, added to the rules-based assistant you already have. - **Send later.** Pick when a reply goes out. - **More providers.** Native Postmark and Mailgun transports. - **Outgoing webhooks.** Events for your own systems when mail arrives, is answered or bounces. ### Exploring Ideas we are testing. They may change or not happen. - **Team analytics.** Response times, volume by channel and deliverability trends. - **Microsoft Teams.** Routing into Teams channels as well as Slack. - **Receiving through Amazon SES.** An inbound path that does not depend on Resend. ## Pricing Source: https://app.nexmail.nexprove.com/pricing ### Is Nexmail really free? Yes, for up to 9 seats — a seat is a person on your team or a shared mailbox such as support@. Mail arrives through Resend’s inbound and leaves through your own Resend or Brevo account, and both have free plans, so a small team can run on its own domain without paying anyone. Higher volumes move you onto their paid plans, billed by them. ### What does the Team plan add? More than 9 seats, the meeting notetaker for Meet, Zoom and Teams calls, and the AI calendar reader, which finds meetings in loosely worded email and quick-add lines. Everything else, Draft with AI included, is in both plans. The owner upgrades in Settings → Billing, and going over the limit never stops mail arriving or leaving — it only stops adding seats. ### What do I pay my email providers? Whatever they charge you. Nexmail sends through your own Resend, Amazon SES, Brevo, SMTP2GO or SMTP account, so the bill comes from them at their rates. Most offer a free tier that covers a small team. ### Can Brevo receive my mail too? No. In Nexmail, Brevo sends. Mail for your domain reaches Nexmail through Resend’s inbound or through your own mail server, such as Postfix or Mailu. ### Do I need my own domain? For a team, yes, and it is all you need: Nexmail receives and sends mail for domains you own, so it can route each address and authenticate everything it sends. To try it on your own first, connect a Gmail address with an app password and skip the domain step. ### What happens if a payment fails? Nothing is switched off. Your seats stay while the card is retried, and if the subscription ends the team keeps everyone it already has — it just cannot add more until it upgrades again. ## Docs Last updated 2026-10-23. ### Connect your domain to Nexmail Source: https://app.nexmail.nexprove.com/docs/connect-your-domain To send and receive as you@yourdomain, Nexmail needs a few DNS records at your domain. This page explains what each one does, how to find where to add them, and the mistakes that trip most people up. #### How it works 1. In Nexmail, open **Get started** and add your domain. Nexmail asks Resend for the exact records your domain needs. 2. Add those records where your domain’s DNS is managed (your DNS host). 3. Click **Check DNS** in Nexmail. When every record is found, your domain is verified and mail can leave from it. > **Your DNS host might add them for you.** If your DNS is on Cloudflare, Vercel or DigitalOcean, Nexmail can add every record with one API token. Anywhere else, Nexmail can move your DNS to Cloudflare for free and do the same. See [Cloudflare](https://app.nexmail.nexprove.com/docs/connect-your-domain/cloudflare). #### What each record does Copy the exact values from Nexmail. The ones below show the shape for example.com; the region in them (us-east-1) and the DKIM key differ for every account. | Job | Type | Host | Example value | What it does | | --- | --- | --- | --- | --- | | Sending | MX | `send` | `feedback-smtp.us-east-1.amazonses.com (priority 10)` | Lets Resend collect bounces for the mail you send. It only covers the send subdomain, so your own mail is untouched. | | Sending | TXT | `send` | `v=spf1 include:amazonses.com ~all` | SPF. Tells other mail servers that Resend is allowed to send for you. | | Signing | TXT | `resend._domainkey` | `p=MIGfMA0GCSqGSIb3… (a long key)` | DKIM. A public key that proves each message really came from your domain and was not changed on the way. | | DMARC | TXT | `_dmarc` | `v=DMARC1; p=none; rua=mailto:dmarc@example.com` | Tells receivers what to do with mail that fails the checks. p=none means report only, block nothing, which is the safe start. | | Receiving (optional) | MX | `@` | `inbound-smtp.us-east-1.amazonaws.com (priority 10)` | Sends mail for your domain to Nexmail through Resend. Add it only if Nexmail should receive your mail: it replaces wherever your mail goes today. | Sending through Brevo instead of Resend? Nexmail then asks for an SPF record at `@` (`v=spf1 include:spf.brevo.com ~all`), a DKIM record at `mail._domainkey` copied from Brevo → Senders, Domains & Dedicated IPs → Domains, and the same DMARC record. #### Find your DNS host Your DNS host is whoever runs your domain’s nameservers. It is often where you bought the domain, but not always. Nexmail looks this up for you and names your host on the records step. To check yourself, look up the nameservers with any “NS lookup” tool, or run `dig NS example.com +short` in a terminal. Then match them: | Nameservers contain | Your DNS host | | --- | --- | | `registrar-servers.com` | [Namecheap](#namecheap) | | `ns.cloudflare.com` | [Cloudflare](#cloudflare) | | `domaincontrol.com` | [GoDaddy](#godaddy) | | `awsdns` | [Amazon Route 53](#route53) | | `googledomains.com` or `squarespacedns.com` | [Squarespace (formerly Google Domains)](#squarespace) | | `vercel-dns.com` | [Vercel](#vercel) | | `porkbun.com` | [Porkbun](#porkbun) | | `dns-parking.com` or `hostinger` | [Hostinger](#hostinger) | | `digitalocean.com` | [DigitalOcean](#digitalocean) | | `ui-dns` | [IONOS](#ionos) | #### Common mistakes ##### Typing the full name in the host field Most DNS hosts add your domain to the end of the host for you. Type `send.example.com` and you get `send.example.com.example.com`, which never verifies. Type only the part Nexmail shows in the Host column: `send`, `resend._domainkey`, `_dmarc`, or `@` for the domain itself. ##### Leaving the Cloudflare proxy on On Cloudflare, CNAME and A records have a Proxy status. Any record that is part of your email setup must be **DNS only**, shown as a grey cloud. An orange cloud (Proxied) hides the real value and mail checks fail. Click the cloud to turn it grey, then save. *Illustration: Cloudflare’s Proxy status switch. Mail records need the grey cloud: DNS only.* ##### Putting Namecheap MX records under Host Records Namecheap keeps mail records apart. TXT and CNAME records go under Advanced DNS → Host Records, but MX records go in the **Mail Settings** section further down: set its dropdown to **Custom MX** first. See [the Namecheap guide](https://app.nexmail.nexprove.com/docs/connect-your-domain/namecheap). ##### Not waiting for the change to spread New records usually show up within minutes. Sometimes it takes an hour, and old cached answers can last up to 48 hours. Nexmail keeps checking on its own. Do not delete and re-add a record that looks right: that only restarts the wait. ##### Two SPF records on one host A host can have only one record starting with `v=spf1`. If one is already there, merge them into one, for example `v=spf1 include:amazonses.com include:_spf.google.com ~all`. Two separate SPF records make both fail. #### Steps for every DNS host Pick your host. “Your records table in Nexmail” means the records on the **Publish the DNS records and verify** step of Nexmail’s setup. ##### Namecheap There is a full guide with pictures: [Namecheap step by step](https://app.nexmail.nexprove.com/docs/connect-your-domain/namecheap). 1. Sign in to Namecheap and open Domain List. 2. Click Manage next to your domain, then the Advanced DNS tab. 3. Under Host Records, click Add New Record and pick the Type (TXT Record, CNAME Record). 4. Paste the Host and the Value from your records table in Nexmail. Leave TTL on Automatic. 5. Click the green tick to save. Repeat for each record. **Mail (MX) records:** Mail records go in the Mail Settings section further down, not under Host Records: change its dropdown to Custom MX, then add each MX record with its Host, Value and Priority. Switching to Custom MX turns off Namecheap email forwarding for this domain. ##### Cloudflare There is a full guide with pictures: [Cloudflare step by step](https://app.nexmail.nexprove.com/docs/connect-your-domain/cloudflare). 1. Sign in to Cloudflare and pick your domain. 2. Open DNS → Records. 3. Click Add record, pick the Type, and paste the Name and Content from your records table in Nexmail. 4. For CNAME records, set Proxy status to DNS only (grey cloud). Mail records must never be proxied. 5. Save, and repeat for each record. Or use Import and Export → Import with the zone file Nexmail offers. **Mail (MX) records:** MX records take a Priority; enter the number shown in the table. ##### GoDaddy 1. Sign in to GoDaddy and open My Products → Domains. 2. Pick your domain and choose DNS → Manage DNS. 3. Click Add New Record, pick the Type, and paste the Name and Value from your records table in Nexmail. 4. Leave TTL at the default and save. Repeat for each record. **Mail (MX) records:** For MX records also enter the Priority shown in the table. ##### Amazon Route 53 1. Open Route 53 → Hosted zones and pick your domain. 2. Click Create record, type the Record name (leave it empty for @), pick the Record type and paste the Value. 3. TXT values must be wrapped in double quotes in Route 53. **Mail (MX) records:** MX values are written as "priority value", for example 10 inbound-smtp.us-east-1.amazonaws.com. ##### Squarespace (formerly Google Domains) 1. Sign in to Squarespace Domains and pick your domain. 2. Open DNS → DNS Settings, then Custom records. 3. Click Add record, pick the Type, paste the Host and Data from your records table in Nexmail, and save. **Mail (MX) records:** MX records take the Priority shown in the table. ##### Vercel 1. Open the Vercel dashboard → Domains and pick your domain. 2. Under DNS Records, enter the Name, pick the Type, paste the Value and click Add. **Mail (MX) records:** MX records take the Priority shown in the table. ##### Porkbun 1. Open Domain Management and click DNS next to your domain. 2. Pick the Type, enter the Host and Answer from your records table in Nexmail, and click Add. ##### Hostinger 1. Open hPanel → Domains, pick your domain and open DNS / Nameservers. 2. Under Manage DNS records, pick the Type, enter the Name and value, and click Add Record. ##### DigitalOcean 1. Open Networking → Domains and pick your domain. 2. Pick the record type tab, enter the Hostname and value, and click Create Record. ##### IONOS 1. Open Domains & SSL, click the gear next to your domain and choose DNS. 2. Click Add record, pick the Type, enter the Host name and value, and save. ##### Any other host 1. Sign in where your domain is registered (or wherever its DNS is managed) and find its DNS records. 2. Add each record from your records table in Nexmail with the Type, Host and Value shown. 3. If the host field shows your domain after it, enter only the part shown in Host. Use @ for the domain itself. ### Connect your domain on Cloudflare Source: https://app.nexmail.nexprove.com/docs/connect-your-domain/cloudflare Two paths. If your domain’s DNS is already on Cloudflare, add Nexmail’s records with a token or by hand. If it is somewhere else, Nexmail can move it to Cloudflare for free and set everything up in the same step. #### Which path is yours? - Your nameservers end in `ns.cloudflare.com`: your DNS is already on Cloudflare. Follow [path A](#already-on-cloudflare). - Anything else: your DNS is elsewhere. Add the records there (see [every DNS host](https://app.nexmail.nexprove.com/docs/connect-your-domain#other-hosts)), or follow [path B](#move-your-dns) to move it to Cloudflare. #### A. Your DNS is already on Cloudflare ##### Let Nexmail add the records (fastest) On the records step, Nexmail shows **Add them all for me** with a box for a Cloudflare API token. Make the token from Cloudflare’s ready-made “Edit zone DNS” template: 1. Open [Cloudflare → My Profile → API Tokens](https://dash.cloudflare.com/profile/api-tokens) and click Create Token. 2. Next to the "Edit zone DNS" template, click Use template. 3. Check the Permissions row reads Zone, DNS, Edit. The template fills it in for you. 4. Under Zone Resources, choose Include, then Specific zone, then your domain. 5. Click Continue to summary, then Create Token. 6. Copy the token. Cloudflare shows it only once. *Illustration: The template’s permission row: Zone, then DNS, then Edit. You do not need to change it.* Paste the token into Nexmail and click **Add records**. Nexmail adds each record as DNS only, checks them, and forgets the token. It is never stored. ##### Or add them by hand 1. Sign in to Cloudflare and pick your domain. 2. Open DNS → Records. 3. Click Add record, pick the Type, and paste the Name and Content from your records table in Nexmail. 4. For CNAME records, set Proxy status to DNS only (grey cloud). Mail records must never be proxied. 5. Save, and repeat for each record. Or use Import and Export → Import with the zone file Nexmail offers. **Mail (MX) records:** MX records take a Priority; enter the number shown in the table. *Illustration: Proxy status must be the grey cloud, DNS only, for every mail record.* #### B. Move your DNS to Cloudflare Cloudflare DNS is free. Nexmail copies your current records to Cloudflare, adds its own, and then you change two nameservers where you bought the domain. Nothing changes until you do that last step, and going back is putting the old nameservers back. ##### 1. Make a custom token > **Read this before you start.** Each permission row in Cloudflare’s form has **three dropdowns**. The first one is easy to miss: it must say **Zone** (or **Account** for the last row). If it says anything else, the second dropdown will not offer DNS. 1. Open [Cloudflare → My Profile → API Tokens](https://dash.cloudflare.com/profile/api-tokens) and click Create Token. 2. At the bottom, next to Create Custom Token, click Get started. Name the token "Nexmail". 3. Under Permissions, the first row has three dropdowns. Set the first dropdown to Zone, the second to Zone, the third to Edit. 4. Click + Add more. In the new row, set the first dropdown to Zone, the second to DNS, the third to Edit. 5. Click + Add more again. In the third row, set the first dropdown to Account (not Zone), the second to Account Settings, the third to Read. 6. Under Account Resources, choose Include, then your account. 7. Under Zone Resources, choose Include, then All zones from an account, then your account. 8. Click Continue to summary, then Create Token, and copy the token. Cloudflare shows it only once. *Illustration: The three permission rows, three dropdowns each. Set the first dropdown of each row, highlighted, before the other two.* ##### 2. Paste it into Nexmail On the records step, open **Move to Cloudflare**, paste the token and click **Copy my DNS to Cloudflare**. Nexmail lists what it copied and anything it could not, and shows your two Cloudflare nameservers. ##### 3. Switch the nameservers This is the one step no registrar lets an outside app do. Sign in where you bought the domain and replace its nameservers with the two Cloudflare gave you: ##### At Namecheap 1. Open Domain List and click Manage next to your domain. 2. In the Nameservers row (Domain tab), change Namecheap BasicDNS to Custom DNS. 3. Paste the two nameservers Cloudflare gave you, one per line, and click the green tick. ##### At GoDaddy 1. Open My Products → Domains and pick your domain. 2. Choose DNS → Nameservers → Change Nameservers → I'll use my own nameservers. 3. Enter the two nameservers Cloudflare gave you and save. ##### At Squarespace (formerly Google Domains) 1. Open your domain → DNS → Domain Nameservers → Use custom nameservers. 2. Enter the two nameservers Cloudflare gave you and save. ##### At Porkbun 1. Open Domain Management, click Details under your domain, then Authoritative Nameservers → edit. 2. Replace them with the two nameservers Cloudflare gave you and submit. ##### At Hostinger 1. Open hPanel → Domains → your domain → DNS / Nameservers → Change nameservers. 2. Choose custom nameservers, enter the two nameservers Cloudflare gave you and save. ##### At IONOS 1. Open Domains & SSL, click the gear next to your domain → Nameservers. 2. Choose custom nameservers, enter the two nameservers Cloudflare gave you and save. ##### Anywhere else 1. Sign in where you bought the domain (the registrar) and find its nameserver settings. 2. Replace the current nameservers with the two nameservers Cloudflare gave you and save. ##### 4. Wait for the switch Nexmail checks every minute and tells you when the switch is seen. It usually takes minutes, occasionally a few hours. From then on, any DNS change Nexmail needs is one click. #### If something goes wrong - **“The token is missing a permission.”** Open the token in Cloudflare and check every row’s first dropdown. It must be Zone (Account for the Account Settings row). - **Nexmail cannot see your domain.** Check Zone Resources includes your account (path B) or your domain (path A). - **Lost the token.** Cloudflare shows it once. Make a new one; Nexmail never kept the old one. - **A record shows an orange cloud.** Click it to turn it grey (DNS only) and save. ### Connect your domain on Namecheap Source: https://app.nexmail.nexprove.com/docs/connect-your-domain/namecheap Namecheap splits DNS records into two places. TXT and CNAME records go under Host Records; MX records go under Mail Settings, set to Custom MX. Here is each step. #### 1. Open Advanced DNS 1. Sign in to Namecheap and open Domain List. 2. Click Manage next to your domain, then the Advanced DNS tab. *Illustration: Advanced DNS: Host Records at the top for TXT and CNAME, Mail Settings below with the Custom MX dropdown.* #### 2. Add the TXT and CNAME records under Host Records 1. Under Host Records, click Add New Record and pick the Type (TXT Record, CNAME Record). 2. Paste the Host and the Value from your records table in Nexmail. Leave TTL on Automatic. 3. Click the green tick to save. Repeat for each record. In the Host box, type only the part Nexmail shows, such as `send`, `resend._domainkey` or `_dmarc`. Namecheap adds your domain on its own. Use `@` for the domain itself. #### 3. Add the MX records under Mail Settings 1. Scroll down to the **Mail Settings** section of the Advanced DNS tab. 2. Change its dropdown to **Custom MX**. 3. Click **Add New Record** and enter the Host, Value and Priority from your records table in Nexmail. Repeat for each MX record. 4. Click the green tick to save. > **This turns off Namecheap email forwarding.** Mail records go in the Mail Settings section further down, not under Host Records: change its dropdown to Custom MX, then add each MX record with its Host, Value and Priority. Switching to Custom MX turns off Namecheap email forwarding for this domain. If you rely on Namecheap forwarding today, leave out the receiving MX at `@` until you are ready for Nexmail to receive your mail. The `send` MX can be added either way. #### 4. Check in Nexmail Back in Nexmail, click **Check DNS**. Most records appear within minutes. If one stays missing after an hour, compare its Host box with the table: a host typed as `send.example.com` is the usual cause. #### Rather not do it by hand? Nexmail can move your DNS to Cloudflare for free and add every record for you. Then you change the nameservers at Namecheap once. See [moving to Cloudflare](https://app.nexmail.nexprove.com/docs/connect-your-domain/cloudflare#move-your-dns). 1. Open Domain List and click Manage next to your domain. 2. In the Nameservers row (Domain tab), change Namecheap BasicDNS to Custom DNS. 3. Paste the two nameservers Cloudflare gave you, one per line, and click the green tick. ### Connect Gmail or Google Workspace Source: https://app.nexmail.nexprove.com/docs/connect-gmail Send and receive through your own Gmail or Google Workspace account. You need an app password from Google, and nothing changes in your DNS. #### Before you start - **2-Step Verification** must be on for the Google account. Google only offers app passwords to accounts that have it. - **IMAP** must be on in Gmail, so Nexmail can read replies: Gmail → Settings → **See all settings** → **Forwarding and POP/IMAP** → **Enable IMAP** → Save changes. - **Google Workspace only:** your admin must allow app passwords (Admin console → Security → Authentication → 2-Step Verification) and IMAP access (Apps → Google Workspace → Gmail → End User Access) for your account. #### Create the app password 1. Sign in to the Google account and open [myaccount.google.com/apppasswords](https://myaccount.google.com/apppasswords). 2. Type a name you will recognise, such as `Nexmail`, and choose **Create**. 3. Google shows 16 letters in four groups. Copy them — Google will not show them again. The spaces do not matter. > **Not your normal password** Nexmail needs the app password. Your Google password will be refused, and Nexmail never asks for it. #### Connect it in Nexmail 1. Open **Get started** (or **Settings → Providers**) and choose **Google (Gmail / Workspace)**. 2. Enter the Google address and paste the app password, then **Connect**. 3. Nexmail signs in twice — once to send (SMTP) and once to read your inbox (IMAP). If either is refused, nothing is saved and it says which one and why. 4. **Send me a test.** The test goes from your address to itself through Google, and setup marks it received once Nexmail reads it back from your inbox. #### A @gmail.com address or a Workspace one | | @gmail.com | Google Workspace (you@yourcompany.com) | | --- | --- | --- | | Domain step | Not needed. Your Gmail address is the sender. | Done for you: signing in to Google proves the domain is yours. | | DNS records | None. | Shown as advice only: MX at Google, SPF with `include:_spf.google.com`, the `google._domainkey` DKIM key, and DMARC. Missing ones never block a send. | | Daily sending limit | About 500 messages | About 2,000 messages | #### What happens to your mail - Mail you send leaves through Google as your address and appears in your Gmail **Sent** folder as usual. - Nexmail reads your **Inbox** about once a minute. It only reads: messages stay unread in Gmail, and nothing is moved or deleted. - On first connect, Nexmail brings in the last 7 days of your inbox, then keeps up from there. - Past the daily limit, new mail waits in Nexmail and goes out the next day. Nothing is dropped. > **Campaigns** Google’s terms forbid bulk marketing from Gmail, and the daily limit makes a campaign take days. For campaigns, connect a bulk provider such as Brevo under Settings → Providers. #### If it is refused | What Nexmail says | What to do | | --- | --- | | Google wants an app password here | You pasted your normal password. Create an app password and use that. | | IMAP is switched off for this account | Turn on IMAP in Gmail settings (see above), save, and connect again. | | Google blocked the sign-in and wants it confirmed in a browser | Sign in to Gmail on the web once, then try again. On Workspace, ask your admin to allow app passwords. | | Google did not accept that address and app password | Check the address. If the app password was revoked or mistyped, create a new one. | ### Connect a calendar to Nexmail Source: https://app.nexmail.nexprove.com/docs/connect-a-calendar Nexmail has a Team calendar everyone shares and a private one for each person. Connect the calendars you already use and their events show alongside, kept in sync both ways. #### Connect a calendar 1. Open **Settings → Calendars**. Calendars you connect here are private to you. 2. Choose **Google Calendar** or **Outlook / Microsoft 365** and sign in, or fill in the CalDAV or calendar link form. 3. Its events start syncing straight away and show on the **Calendar** page next to the Team calendar. | Calendar | How it connects | Sync | | --- | --- | --- | | Google Calendar | Sign in with Google | Both ways | | Outlook and Microsoft 365 | Sign in with Microsoft | Both ways | | iCloud, Fastmail or another CalDAV server | Your username and an app-specific password | Both ways | | Any calendar link (ICS) | Paste the link the calendar publishes | Read-only | > **Use an app-specific password for CalDAV** Not your main password. On iCloud, create one at appleid.apple.com → Sign-In and Security → App-Specific Passwords. #### How sync works - Changes you make in Nexmail go out to the provider first, then Nexmail reads back, so an edit is never overwritten by an older copy. - Nexmail keeps a month back and six months ahead in sync, and checks again every few minutes. - An event you add can go on several calendars at once, and later changes reach all of them. - If the provider revokes access, the account stops with the reason shown in Settings. No events are deleted, and connecting again picks up where it left off. #### Meetings from your email - Calendar invites, with their updates and cancellations, are added exactly. - A meeting time written in an email, such as “call on Thursday at 3pm”, becomes a **tentative** event for you to confirm. - Mail to your personal address goes on your own calendar; everything else on the Team calendar. Either way, only people who can read the email see the event. - Each email thread shows the meetings it set up, with **Join** and **Add to calendar**. - On the **Team plan**, an AI reader also picks up looser wording like “next Tuesday after lunch” or “can we push to 4?”. What it finds is always tentative. #### Quick add in plain words Type a line in the box at the top of the Calendar, such as `Lunch with sam@acme.com Friday 1pm for an hour`. The event opens filled in for you to check, and nothing is saved until you do. On the Team plan the AI reads it first, so looser phrasing works too. #### AI tools and your calendar Claude and other tools connected over MCP can list your calendars and events, find free time, and create, move or delete events, within what you can see yourself. See [Nexmail for AI agents](https://app.nexmail.nexprove.com/docs/ai-agents). ### Booking links in Nexmail Source: https://app.nexmail.nexprove.com/docs/booking-links A booking link is a public page where people pick a free time from your calendars. The booking lands on your calendar, and both of you get an invite. #### Create a booking link 1. Open **Settings → Booking links** and choose **New booking link**. 2. Give it a title and a link name. The page lives at `/book/` followed by that name. 3. Set your **weekly hours**, the **lengths** people can choose (for example `15, 30, 60`), and your time zone. 4. Choose the calendar bookings go on, and the video: **Google Meet** (a new link for each booking), your own link or place, or none. 5. Save, then copy the link or insert it into any email from the editor toolbar. | Setting | Starts at | What it does | | --- | --- | --- | | Gap between meetings | 10 minutes | Free time kept around each existing event | | Minimum notice | 4 hours | How soon someone can book | | Bookable days ahead | 30 days | How far ahead the page offers times | > **Google Meet needs a Google calendar** Meet links are created for bookings that go on a connected Google calendar. On any other calendar, use your own link instead. #### When someone books - The page only offers times that are free on your calendars. - Two people cannot take the same slot: the second is told it has gone. - The event goes on your chosen calendar and syncs to Google or Outlook like any other. - The person who booked gets a confirmation with the invite attached and a link to cancel, and you get one too. Both come from your own address when you have one. - On the Team plan, tick **Send the notetaker to every booking** and each call gets notes. See [Meeting notetaker](https://app.nexmail.nexprove.com/docs/meeting-notetaker). #### Cancelling The cancel link in the confirmation removes the event from your calendar and tells you both. To pause a page without deleting it, untick **Link is on**. ### The Nexmail meeting notetaker Source: https://app.nexmail.nexprove.com/docs/meeting-notetaker Send a notetaker to a Google Meet, Zoom or Microsoft Teams call. It joins when the call starts, and afterwards the transcript and a summary are waiting where your team already looks. The notetaker comes with the Team plan. #### Send the notetaker 1. Open the meeting on the **Calendar**. It needs a Meet, Zoom or Teams link in its video link, location or description. 2. Choose **Send notetaker**. It is booked to join when the call starts; if the call has already started, it joins now. 3. Changed your mind? **Cancel** removes it before it joins. To send it to every call booked through a booking link, tick **Send the notetaker to every booking** on that link. #### Where the notes go - On the **event**: the full transcript, with speaker names, and a summary. - On the **email thread** the meeting came from, as a note only your team can see. - In that thread’s **Slack** thread, when the thread has one. The summary has three short parts, each only when there is something to say: decisions, action items with who does what, and open questions. It never adds anything that was not said. > **Tell people it is there** The notetaker joins as a visible participant. Let the other people on the call know it is recording, as the law where you and they are may require. #### If it could not take notes The event says so, with the reason. A request is never dropped quietly: if the notetaker service is down, Nexmail keeps trying. ### Sales pipeline and Draft with AI Source: https://app.nexmail.nexprove.com/docs/sales-pipeline Turn on the sales pipeline and the people you are talking to get a board of their own, with a stage, an owner and a next step each. Draft with AI comes with it, on every plan. #### Turn it on An admin opens **Settings → Sales** and switches on the **Sales pipeline**. Once it is on, the whole team sees the pipeline and the lead list. #### Stages Everyone on the board is at one stage: **New**, **Contacted**, **Replied**, **Meeting**, **Proposal**, **Won**, **Lost**. - The first email a person on your team sends moves someone from New to Contacted. Nexmail never moves anyone backwards on its own. - Everyone a campaign reaches lands on the board. A one-to-one email only adds people you imported or added as contacts, so answering a support thread does not fill the pipeline with customers. - Move people by hand from the board, the person page or the thread. Every move is kept on that person’s timeline. #### Working the pipeline - Give each person an owner and a next step with a date. The **Due** tab shows what is overdue and what is due today. - Select several people to move them, give them an owner, archive them, or add them to a draft campaign in one go. - Archiving only hides someone from the sales lists. Unarchive brings them back, and nothing is deleted. #### Draft with AI With the pipeline on, the reply box and Compose have **Draft with AI**. Say what you want, such as `thank them and suggest a call next week`, and a first draft of the reply, the new email or the campaign appears in the composer. - It only writes text. It never sends, saves a draft or starts a campaign: a person reads it, edits it and presses Send. - A reply draft reads the thread you are answering, and only a thread you can open. - Everything you send still passes the pre-send checks. - Each person can ask for 30 drafts every 10 minutes. Past that, wait a few minutes and try again. > **Free and Team alike** Draft with AI is in both plans. The Team plan adds the AI calendar reader and the meeting notetaker. ### Using Nexmail from AI agents and scripts Source: https://app.nexmail.nexprove.com/docs/ai-agents An MCP server so Claude, Cursor and other AI tools can read and answer mail, and a REST API for campaigns, built so an agent can do the work and a person still decides what goes out. Bearer tokens, JSON in and out, and refusals you can branch on. #### Rules for agents Follow these exactly. They are how the API is built, not suggestions. 1. Use only the endpoints on this page. Do not guess other paths. 2. Never launch a campaign a person has not approved. The launch call must name that person, and it must echo the approval digest they saw. 3. Branch on the HTTP status and on `code` when present. Never on the wording of `error`; it changes. 4. A `202` from a launch means queued, not sent. Read the campaign afterwards to see what happened. 5. Never retry a `422` with a freshly read digest unless a person approved again. That defeats the approval. 6. Treat a held or deferred recipient as waiting, not failed. Nexmail never drops mail; it waits. 7. Never print, log or store the token anywhere but a secret store. #### Get a credential 1. An administrator signs in to Nexmail and opens **Settings → Credentials**. 2. They create a credential, name it after the agent (for example `crm-agent`), and tick only the scopes it needs. 3. Nexmail shows the token **once**. Store it in a secret manager. A lost token cannot be recovered; mint a new one and revoke the old. The token looks like `mgw_<24 hex characters>_`. Send it on every request: ```http Authorization: Bearer mgw_0123456789abcdef01234567_REPLACE_WITH_SECRET Content-Type: application/json ``` Base URL: `https://app.nexmail.nexprove.com`. Every path below is relative to it. ##### Scopes | Scope | Allows | | --- | --- | | `campaigns:read` | List and read campaigns, read the approval digest, preview, read recipients and send limits. **Required for any launch flow**: without it you cannot read the digest the launch must echo. | | `campaigns:write` | Create, edit and delete draft campaigns; add recipients; mark reply outcomes. | | `campaigns:send` | Launch a campaign, with a person’s approval attached. | | `campaigns:prerendered` | Create campaigns whose recipients each carry finished subject, HTML and text. Not implied by `campaigns:write`. Only for systems that render and approve mail themselves. | | `mail:read` | MCP only: list mailboxes, list and read conversations — exactly what the person who created the credential can see. | | `mail:send` | MCP only: send a new email or reply in a thread, as the person who created the credential. | | `contacts:read` | MCP only: search contacts. Works only on a credential the organization owner created. | | `contacts:write` | MCP only: add and update contacts. Works only on a credential the organization owner created. | | `calendar:read` | MCP only: list calendars and events, and find free time — the calendars the person who created the credential can see. | | `calendar:write` | MCP only: add, move, cancel and delete events on calendars that person can write to. Changes reach connected Google, Outlook and CalDAV calendars. | A credential belongs to one organization and acts only inside it. It is not a user: it can never reach settings, raise a send limit, lift the emergency stop, or take a launch override. #### Errors Every error is JSON with an `error` string. Some carry more fields: ```json { "error": "This credential does not carry campaigns:send" } ``` | Status | Means | What to do | | --- | --- | --- | | 400 | The body is invalid, or the action is not allowed in this state (for example editing a campaign that is not a draft). | Fix the request. Do not retry unchanged. | | 401 | No token, or an unknown, malformed or revoked one. Body: `{"error":"Authentication required"}`. | Stop. Ask a person for a valid credential. | | 403 | The credential lacks the scope, or the action is for people only. | Stop. Do not look for a way around it. | | 404 | Not found in this organization. | Check the id. | | 409 | The campaign changed while you were acting on it. | Read it again, then decide. | | 422 | Refused on purpose: missing or stale approval, or content that would harm the recipient. Carries `blocked: true` and often `code`. | Read `code`. Most need a person. | | 429 | Rate limited. Has a `retry-after` header in seconds. | Wait that long. | | 500 | Server error. `{"error":"Internal server error"}`. | Retry later with backoff. Nothing you sent is half-applied in a way that loses mail. | #### Endpoints | Method | Path | Scope | Does | | --- | --- | --- | --- | | GET | `/api/campaigns` | `campaigns:read` | The 100 newest campaigns, each with `stats`. | | POST | `/api/campaigns` | `campaigns:write` | Create a draft. | | GET | `/api/campaigns/:id` | `campaigns:read` | One campaign, its stats, approval and a sample of 50 recipients. Add `?approvalDigest=1` for the digest. | | PATCH | `/api/campaigns/:id` | `campaigns:write` | Edit a draft. | | DELETE | `/api/campaigns/:id` | `campaigns:write` | Delete a draft. Sent campaigns cannot be deleted. | | GET | `/api/campaigns/:id/recipients` | `campaigns:read` | Search the list: `?q=` and `?take=` (default 50). | | POST | `/api/campaigns/:id/recipients` | `campaigns:write` | Add up to 5,000 recipients per call. Safe to repeat. | | PATCH | `/api/campaigns/:id/recipients/:recipientId` | `campaigns:write` | Record how a reply went. | | GET | `/api/campaigns/:id/preview` | `campaigns:read` | Dry run: what a launch would do, with warnings. | | POST | `/api/campaigns/:id/preview` | `campaigns:read` | Render the mail for one recipient or sample fields. | | POST | `/api/campaigns/:id/test-send` | people only | Sends a test to the signed-in person. A credential gets 403. | | POST | `/api/campaigns/:id/send` | `campaigns:send` | Launch, with the approval attached. Answers 202. | | GET | `/api/campaigns/send-limits` | `campaigns:read` | Today’s sending ceilings and how much is left. | ##### List campaigns ```bash curl -s https://app.nexmail.nexprove.com/api/campaigns \ -H "Authorization: Bearer $NEXMAIL_TOKEN" ``` 200: ```json { "campaigns": [ { "id": "CAMPAIGN_ID", "name": "October update", "status": "draft", "contentMode": "template", "fromAddress": "news@example.com", "stats": { "total": 0, "pending": 0 } } ] } ``` `status` is one of `draft`, `sending`, `sent`, `failed`. ##### Create a draft Fields: `name` (required), `subject` (required), `bodyHtml` and/or `bodyText` (at least one), `from` (required: an address on a verified domain of this organization), `fromName`, `subjectB` (a second subject to A/B test). Merge fields are written `{{firstName}}` and filled from each recipient’s `fields`. ```bash curl -s -X POST https://app.nexmail.nexprove.com/api/campaigns \ -H "Authorization: Bearer $NEXMAIL_TOKEN" -H "Content-Type: application/json" \ -d '{"name":"October update","subject":"What changed in October", "bodyHtml":"

Hi {{firstName}},

Here is what changed.

", "bodyText":"Hi {{firstName}},\n\nHere is what changed.", "from":"news@example.com","fromName":"Example Co"}' ``` 201: ```json { "campaign": { "id": "CAMPAIGN_ID", "name": "October update", "status": "draft" } } ``` ##### Edit a draft Send only the fields to change: `name`, `subject`, `bodyHtml`, `bodyText`, `from`, `fromName`, `subjectB` (null turns the test off). Anything but a draft answers 400. PATCH /api/campaigns/:id: ```json { "subject": "What changed this month" } ``` ##### Add recipients Up to 5,000 per call; send a long list in several calls. Repeating a call adds nobody twice. Addresses on the organization’s suppression list (unsubscribed, bounced, complained) come back in `suppressed` and are never mailed. POST /api/campaigns/:id/recipients: ```json { "recipients": [ { "email": "ada@example.org", "fields": { "firstName": "Ada" } }, { "email": "lin@example.org", "fields": { "firstName": "Lin" } } ] } ``` 200: ```json { "added": 2, "skipped": 0, "suppressed": [] } ``` Adding people **after** a campaign was approved needs a fresh approval for the addition: send the same `authorisation` block as a launch, without `launchedBy`, carrying the digest read just before the person approved. Without it the answer is 422 `addition_requires_approval`. ##### Dry run and preview `GET /api/campaigns/:id/preview` reports what a launch would do: counts, recipients missing merge fields, content that would be refused, which transports would carry it, and plain-language `warnings`. Show every warning to the person approving. 200 (shortened): ```json { "campaignId": "CAMPAIGN_ID", "status": "draft", "subjectTest": false, "stats": { "total": 2, "pending": 2 }, "warnings": [ "Launching this campaign over a machine credential requires an authorisation block naming the person who approved it. …" ] } ``` `POST /api/campaigns/:id/preview` renders the actual mail. Body (all optional): `recipientId`, or `fields` for sample data, and `variant` (`"A"` or `"B"`). The answer has `subject`, `html`, `text`, `missing` (merge fields it could not fill) and `refusals`. POST /api/campaigns/:id/preview: ```json { "fields": { "firstName": "Ada" } } ``` ##### Test send A test goes to the signed-in person’s own inbox, so it needs a person in the Nexmail app: **a credential gets 403**. Each person can send 10 tests an hour; the 11th answers 429 with `retry-after`. Ask the approver to send themselves a test from the campaign page. ##### Read the approval digest Right before a person approves, read the campaign with `?approvalDigest=1`. The digest fingerprints the content (subject, bodies, sender, click tracking, test subject) and the full recipient list. Keep the object exactly as returned. ```bash curl -s "https://app.nexmail.nexprove.com/api/campaigns/CAMPAIGN_ID?approvalDigest=1" \ -H "Authorization: Bearer $NEXMAIL_TOKEN" ``` 200 (shortened): ```json { "campaign": { "id": "CAMPAIGN_ID", "status": "draft" }, "approvalDigest": { "content": "7285e7f5…64 hex", "recipients": "6b5e4a64…64 hex" } } ``` ##### Launch The `authorisation` block is required from a credential. `approvedBy` is the person who approved; `launchedBy` is who pressed launch (send the same person twice if one person did both). `approvedAt` is when they approved: not in the future, not older than 30 days. Unknown keys are rejected. POST /api/campaigns/:id/send: ```json { "authorisation": { "approvedBy": { "ref": "crm-user-9f3", "name": "Dana Okafor" }, "approvedAt": "2026-10-14T09:58:02.000Z", "launchedBy": { "ref": "crm-user-9f3", "name": "Dana Okafor" }, "digest": { "content": "7285e7f5…", "recipients": "6b5e4a64…" } }, "allowMissingFields": false } ``` 202: ```json { "queued": true, "campaignId": "CAMPAIGN_ID", "pending": 2, "approvedBy": { "source": "crm_assertion", "ref": "crm-user-9f3", "name": "Dana Okafor", "asserted": true }, "launchedBy": { "source": "crm_assertion", "ref": "crm-user-9f3", "name": "Dana Okafor", "asserted": true }, "approverLaunchedIt": true } ``` `allowMissingFields: true` sends even where a merge field is empty. Leave it false unless a person chose otherwise. `overrideUnauthenticatedTransport` and `overrideUnroutedReplyTo` exist for signed-in administrators only; a credential that sets either gets 403. Launch refusals that need a person (422, `blocked: true`): | `code` | Means | Do | | --- | --- | --- | | `missing_authorisation` | No `authorisation` block. | Your request is incomplete. Fix it; no person needed. | | `stale_approval` | The campaign or its list changed after the approval. `mismatched` says which (`content`, `recipients`). | Show the person the current campaign (the 422 carries the new `approvalDigest`), get a new approval, launch again. | | `approval_expired` | `approvedAt` is more than 30 days old. | Ask the person again. | | `approval_in_future` | `approvedAt` is more than 5 minutes ahead of Nexmail’s clock. | Fix the clock or the field. | A 422 **without** `code` but with `refusals` means the content itself is blocked (for example a link whose text names a different site than it opens). Edit the draft; it cannot be overridden. ##### After launch Poll `GET /api/campaigns/:id` (once a minute is plenty). Read each recipient’s `disposition.state`, not `status`: it is one of `pending`, `queued`, `held` (waiting for a later window, with `until`), `sending`, `retrying`, `dispatched` (handed to a provider), `failed`, `suppressed` or `unknown`. Only `failed` is a failure. `held` alongside `stats` says how many are waiting and when the first goes. If every provider refuses at launch, the campaign stays `draft` with everyone `pending`; launching again later is safe and adds nobody twice. ##### Record a reply outcome PATCH /api/campaigns/:id/recipients/:recipientId: ```json { "disposition": "meeting_booked" } ``` `disposition` is `interested`, `meeting_booked`, `not_interested`, or `null` to clear it. ##### Send limits ```bash curl -s "https://app.nexmail.nexprove.com/api/campaigns/send-limits?from=news@example.com" \ -H "Authorization: Bearer $NEXMAIL_TOKEN" ``` 200 (shortened): ```json { "window": { "day": "2026-10-14", "timezone": "UTC", "nextWindowStart": "2026-10-15T00:00:00.000Z" }, "axes": [ { "scope": "global", "label": "the gateway-wide daily limit", "limit": 500, "used": 120, "remaining": 380, "exhausted": false } ], "effective": { "scope": "global", "remaining": 380 }, "unresolved": ["transport"], "exhausted": false, "warmup": null, "deferredCount": 0 } ``` `effective: null` with an empty `unresolved` means no limit is set. `provider` is optional (`resend`, `smtp`, `brevo`, `smtp2go`, `outreach`, `ses`); an unknown one answers 400. #### The safety model - **Approval digest.** A launch carries the digest a person saw. Nexmail recomputes it from its own data and refuses if anything moved. It proves what was approved; the approver’s name is your word, recorded as `crm_assertion`. - **Never lose mail.** Every message is saved before it is queued. When no provider is available, mail waits in the queue; it is not marked failed. - **Suppression.** Unsubscribed, bounced and complained addresses are never mailed, even if you add them. If the list cannot be read, bulk mail is held rather than sent blind. - **Daily ceilings.** Per organization, per provider and per domain, plus a warm-up ramp for new domains. Mail over a ceiling waits for the next window; it does not fail and does not use up retries. - **Emergency stop.** An administrator can stop outgoing mail in the app. It acts as a ceiling of zero: `send-limits` shows an axis with `scope: "stop"`, `limit: 0`, `exhausted: true`, and mail waits until it is lifted. A credential cannot lift it. - **Content checks.** Executable attachments, links that lie about where they go and spoofed sender names are refused before sending. - **Rate limits.** Test sends: 10 per person per hour (429 with `retry-after`). - **Audit log.** Every create, edit, addition, launch and refusal is recorded against the credential. #### Recommended workflow 1. **Check limits.** `GET /api/campaigns/send-limits?from=…`. If `exhausted` is true, tell the person mail will wait. 2. **Create the draft.** `POST /api/campaigns`. Save the `id`. 3. **Add recipients.** `POST /api/campaigns/:id/recipients` in pages of up to 5,000. Report `suppressed` to the person. 4. **Preview.** `GET /api/campaigns/:id/preview` and `POST /api/campaigns/:id/preview` for one or two recipients. Fix every missing field and refusal by editing the draft. 5. **Test send.** Ask the person to send themselves a test from the campaign page in Nexmail and read it in their inbox. 6. **Human approval.** Read `GET /api/campaigns/:id?approvalDigest=1`. Show the person the subject, body preview, recipient count and every warning. Record who approved, and when. 7. **Send.** `POST /api/campaigns/:id/send` with the `authorisation` block and the digest from step 6. Expect 202. 8. **Watch.** Poll `GET /api/campaigns/:id` and report progress. On a 422, follow the table above; do not loop. #### Connect an AI tool over MCP Nexmail is a Model Context Protocol server at `https://app.nexmail.nexprove.com/api/mcp` (Streamable HTTP, stateless). Any MCP client that can send a bearer header can use it: Claude Code, Cursor, and agents built on an MCP SDK. ##### In Claude (web, desktop or mobile) 1. Open **Settings → Connectors → Add custom connector**. 2. Paste `https://app.nexmail.nexprove.com/api/mcp` as the URL. Leave the OAuth fields empty. 3. Sign in to Nexmail when asked and press **Allow**. The connection appears in **Settings → Credentials**, where you can revoke it. ##### With a key (Claude Code, Cursor, scripts) 1. In **Settings → Credentials**, create a credential with `mail:read`, and `mail:send` if the tool may send. Add `calendar:read` and `calendar:write` to let it manage your calendar. Add `contacts:read` only on an owner’s credential. 2. Add the server to your tool. For Claude Code: ```bash claude mcp add --transport http nexmail https://app.nexmail.nexprove.com/api/mcp \ --header "Authorization: Bearer mgw_…" ``` | Tool | Scope | Does | | --- | --- | --- | | `list_mailboxes` | `mail:read` | The addresses the credential can read and send from. | | `list_conversations` | `mail:read` | Threads, newest first; filter by mailbox, status, unread, or search with `query`. | | `get_conversation` | `mail:read` | One thread as plain text, quoted history removed. | | `send_email` | `mail:send` | A new email from one of your mailboxes. Queued, not instantly delivered. Optional `send_at` (ISO time, up to a year ahead) schedules it. | | `reply_to_conversation` | `mail:send` | Replies in a thread to the right people, from its mailbox. Takes `send_at` too. | | `list_scheduled` | `mail:read` | Your scheduled sends that have not gone out yet, soonest first. | | `cancel_scheduled` | `mail:send` | Stops a scheduled send and returns it to your drafts. | | `search_contacts` | `contacts:read` | Contacts by name, email or company. Owner credentials only. | | `create_contact` | `contacts:write` | Adds a contact and refuses an address already on file. Owner credentials only. | | `update_contact` | `contacts:write` | Updates one contact by id. Owner credentials only. | | `list_calendars` | `calendar:read` | The Team calendar, your own, and any you connected, with which ones accept new events. | | `list_events` | `calendar:read` | Events in a date range (up to 120 days), optionally on chosen calendars. | | `find_free_time` | `calendar:read` | Open slots of a given length in working hours, around everything on your own calendars. | | `create_event` | `calendar:write` | A new event on one or more calendars, optionally linked to a conversation. | | `update_event` | `calendar:write` | Moves, renames or cancels an event; every copy changes together. | | `delete_event` | `calendar:write` | Removes an event and its copies, including at the connected provider. | > **An MCP credential is a person’s reach, not more** It sees the mailboxes its creator sees, sends as its creator, and loses access when they do. The pre-send checks still apply and a blocked message cannot be overridden by a tool. #### Not yet available These are not open to credentials today. Do not call them or invent paths for them: - Reading the inbox or sending individual emails over REST. Use the MCP server above. - Editing contacts and contact lists. - Settings, domains, providers, routes and teammates. - Attachments over MCP. #### For language models - This page as Markdown: [/docs/ai-agents.md](https://app.nexmail.nexprove.com/docs/ai-agents.md). - A summary of Nexmail and links to every page: [/llms.txt](https://app.nexmail.nexprove.com/llms.txt). - Everything in one file, including this page: [/llms-full.txt](https://app.nexmail.nexprove.com/llms-full.txt). ## Guides and comparisons ### Free business email on your own domain Source: https://app.nexmail.nexprove.com/free-business-email You can give your whole team email at your own domain without paying per mailbox. Here is how that works with Nexmail, what it costs (usually nothing for a small team), and what you should know before you choose it. #### What you get for free Nexmail is free for up to **9 seats**. A seat is a person on your team or a shared mailbox such as support@ or hello@, so a team of five with four shared addresses fits. On the Free plan you get: - An address at your domain for everyone, such as anna@yourcompany.com, plus shared addresses the whole team answers. - One shared inbox where conversations can be assigned, labelled, snoozed and noted on. See [Shared inbox](https://app.nexmail.nexprove.com/shared-inbox). - New mail announced in the Slack channel that owns each address, with replies possible from Slack. - A team calendar that syncs both ways with Google, Outlook and CalDAV, and [booking links](https://app.nexmail.nexprove.com/use-cases/booking-and-calendar). - Checks on every send for spoofed links, risky attachments and unsubscribed recipients. - Campaigns, contacts, newsletters, templates and Draft with AI (with the sales pipeline turned on). The [Team plan](https://app.nexmail.nexprove.com/pricing) adds more than 9 seats, the meeting notetaker and the AI calendar reader. Everything else is in both plans. #### Why it can be free Most business email is priced per mailbox because the provider stores and delivers every message itself. Nexmail splits that job differently: mail for your domain arrives through **Resend’s inbound** (or your own Postfix or Mailu server), and replies leave through **your own** Resend, Brevo, Amazon SES, SMTP2GO or SMTP account. You hold those accounts and they bill you directly. Resend and Brevo both have free plans meant for low volumes, which covers the day-to-day mail of many small teams. If you send a lot, for example large campaigns, you move onto their paid plans at their rates. Check their sites for current limits, because they change them from time to time. > **No domain DNS access yet?** You can try Nexmail on your own first by connecting a Gmail or Google Workspace account with an app password. Nothing changes in DNS. See [Connect Gmail](https://app.nexmail.nexprove.com/docs/connect-gmail). #### What Nexmail is not It is worth being clear about this before you move your domain’s mail: - Nexmail is a web app. It does not give each person an IMAP or POP mailbox to open in Outlook, Apple Mail or a phone’s mail app. If your team lives in desktop mail clients, a hosted mailbox provider fits better; see [Nexmail vs Zoho Mail](https://app.nexmail.nexprove.com/compare/zoho-mail). - It is built around a team answering mail together. A single person who only wants a private address may find a plain mailbox simpler. - Adding the receiving MX record moves where your domain’s mail goes. If mail already reaches another provider, plan the switch, or receive through Gmail instead. #### What happens when something fails Free should not mean fragile. A message that cannot be saved when it arrives is refused with an error, so the sending server retries instead of the mail vanishing. Mail that matches no route is kept and listed under Unrouted. On the way out, three failures in a row move traffic to your next provider, and if none is available the message waits in the queue rather than being marked failed. Daily sending limits and an emergency stop in **Settings → Sending & stop** keep a mistake from turning into a flood. #### The DNS records involved To send from your domain you publish SPF, DKIM and DMARC records; to receive, one MX record. Nexmail shows the exact values and checks them through public resolvers. The [step-by-step guide](https://app.nexmail.nexprove.com/guides/set-up-email-on-your-domain) walks through each one, and [SPF, DKIM and DMARC explained](https://app.nexmail.nexprove.com/guides/spf-dkim-dmarc-explained) covers what they do. #### How to set it up 1. **Create a workspace.** [Sign up](https://app.nexmail.nexprove.com/signup) and name your organization. The Free plan covers up to 9 seats and needs no card. 2. **Add your domain.** Open **Get started** and add the domain you own. Nexmail lists the DNS records it needs, or publishes them for you on Cloudflare, Vercel or DigitalOcean. See [Connect your domain](https://app.nexmail.nexprove.com/docs/connect-your-domain). 3. **Connect a sending provider.** Connect Resend in one click, or add Brevo, Amazon SES, SMTP2GO or any SMTP server under **Settings → Providers**. Add more than one and Nexmail fails over between them. 4. **Invite the team and add shared addresses.** On **Teammates**, invite people by email and create general mailboxes such as support@, shared with everyone or only the people you pick. 5. **Send a test and route it.** Send yourself a message, reply to it, and, if you use Slack, connect it under **Settings → Slack** and choose which channel hears about each address. #### Questions ##### Is Nexmail really free for business email? Yes, for up to 9 seats, where a seat is a person or a shared mailbox. You pay your own sending provider only if you outgrow its free plan. The Team plan is for more seats, the meeting notetaker and the AI calendar reader. ##### Do I need to buy a domain? For team addresses at your own name, yes. A domain usually costs a small yearly fee at any registrar. Nexmail then needs a few DNS records on it, which it can publish for you on Cloudflare, Vercel or DigitalOcean. ##### Can I use Outlook or Apple Mail with it? Not as a mailbox. Nexmail runs in the browser and does not offer IMAP or POP access. If desktop or phone mail clients matter most, a hosted mailbox provider is a better fit. ##### What happens if we grow past 9 people? Mail keeps arriving and leaving. Going over the limit only stops adding seats until the owner upgrades to Team in **Settings → Billing**. ##### Who can read our email? Your team, within the mailboxes each person is given. Each organization is kept separate from every other, and provider keys are stored encrypted and shown back only as masked hints. See the [Privacy Policy](https://app.nexmail.nexprove.com/privacy). ### Shared inbox for small teams Source: https://app.nexmail.nexprove.com/shared-inbox A shared inbox lets a small team answer support@, sales@ or hello@ together without forwarding chains or two people replying to the same customer. Here is what Nexmail’s shared inbox does, how it fits with Slack, and how to set one up. #### The problem a shared inbox solves Most small teams start with one shared password, a Google group that copies everyone, or a forwarding rule. Each breaks the same way: nobody knows who is answering, the same customer gets two replies or none, and the history of a conversation is scattered across personal inboxes. A shared inbox keeps one copy of each conversation, says who owns it, and keeps the team’s discussion next to it. #### What Nexmail’s shared inbox does - **Assign** a conversation to one person, so everyone else can see it is handled. - **Internal notes** on any thread that only your team can see, for context the customer should not read. - **Labels**, **snooze** until later, and a **follow-up** that brings a thread back if nobody replies. - **Mark unread for the whole team**, and see which teammates have already read a thread. - **Drafts that save as you type**, a few seconds to **undo** every send, and forwarding of one message or a whole thread. - **Trash** that is never emptied behind your back: a conversation can always be restored. - **Keyboard first**: `j` and `k` to move, `x` to select, `Enter` to open, `c` to compose, `?` for the full list. General mailboxes such as support@ can be shared with everyone or only with the people you choose, and each person also has their own address at your domain. #### Slack, without living in Slack Each address can belong to a Slack channel. New mail is announced there, replies to the same conversation stay in one Slack thread, and a reply can be sent from Slack itself. Routing rules match an exact address, a whole domain, a domain fallback and a workspace fallback, in that order, and mail that matches nothing is kept under Unrouted rather than dropped. Slack is optional: the inbox works the same without it. #### AI drafts, with a person pressing Send With the sales pipeline turned on in **Settings → Sales pipeline**, the reply box offers **Draft with AI**. Say what you want, such as “thank them and suggest a call next week”, and a first draft appears in the composer. It never sends anything: a person reads it, edits it and presses Send, and the message still passes the pre-send checks. It is included on the Free plan. See [Sales pipeline and Draft with AI](https://app.nexmail.nexprove.com/docs/sales-pipeline). #### Checks before anything leaves Every reply is read for problems the recipient would see: a link whose text names one site but opens another, an executable attachment, a spoofed display name, or an address that unsubscribed. Those stop the send until fixed or overridden, and an override is recorded under the name of the person who made it. SPF, DKIM and DMARC problems only warn, so a customer reply is never held up by a DNS record that has not spread yet. #### Who it suits, and who it does not It suits teams of a few people answering customers, partners or leads from addresses at their own domain, especially teams already in Slack. It is not a help desk with ticket numbers, SLAs or a customer portal, and it does not offer IMAP access for desktop mail clients. Larger support teams that need analytics and many channels should look at [Front](https://app.nexmail.nexprove.com/compare/front); teams that want native desktop and phone apps should look at [Missive](https://app.nexmail.nexprove.com/compare/missive). #### How to set it up 1. **Create a workspace.** [Sign up](https://app.nexmail.nexprove.com/signup) and name your organization. The Free plan covers up to 9 seats and needs no card. 2. **Add your domain.** Open **Get started** and add the domain you own. Nexmail lists the DNS records it needs, or publishes them for you on Cloudflare, Vercel or DigitalOcean. See [Connect your domain](https://app.nexmail.nexprove.com/docs/connect-your-domain). 3. **Connect a sending provider.** Connect Resend in one click, or add Brevo, Amazon SES, SMTP2GO or any SMTP server under **Settings → Providers**. Add more than one and Nexmail fails over between them. 4. **Create the shared addresses.** On **Teammates**, create general mailboxes such as support@ and sales@, and choose who can see each one. 5. **Route each address.** Connect Slack under **Settings → Slack**, then pick a channel for each address under **Settings → Routes**. 6. **Invite the team.** Invite people by email from **Teammates** and choose who is an admin. #### Questions ##### Is the shared inbox free? Yes. The shared inbox, assignment, notes, Slack routing and Draft with AI are all on the Free plan, for up to 9 seats. A shared mailbox such as support@ counts as one seat. ##### Do I need Slack? No. Slack is where new mail can be announced and answered, but the inbox in Nexmail works on its own. ##### Can two people reply to the same email by accident? Assigning a conversation shows everyone who owns it, and the team sees who has read it. Nexmail does not lock a thread, so agree that the assignee replies. ##### Can I keep my mail on Gmail? Yes. Connect a Gmail or Google Workspace account with an app password and Nexmail reads its inbox about once a minute, without moving or deleting anything in Gmail. Replies go out through Google as you. See [Connect Gmail](https://app.nexmail.nexprove.com/docs/connect-gmail). ##### Does the AI send emails on its own? No. Draft with AI only fills the composer. A person always reads, edits and sends. ### Email for startups: a practical setup guide Source: https://app.nexmail.nexprove.com/email-for-startups A new company needs email that looks professional, reaches inboxes, and does not lose a customer’s message when someone is on holiday. This guide covers the decisions, in the order you meet them, whichever tool you end up using. #### 1. Get the domain right first Buy the domain you will use for years, at a registrar you can log in to without the person who set it up. Note who holds the login: a domain that belongs to a former contractor is a common and painful problem. Keep its DNS somewhere you can edit quickly; Cloudflare DNS is free and Nexmail can publish records there for you. #### 2. Decide which addresses you need Start small. Most early teams need a personal address for each founder and employee, and two or three shared ones: - **hello@** or **contact@** for the website and anything general. - **support@** once you have customers, so replies do not depend on one person’s inbox. - **billing@** or **invoices@** for receipts, so finance does not hunt through personal mail. - **dmarc@** for DMARC reports, which Nexmail files away automatically under their own label. Shared addresses should be shared mailboxes, not forwarding rules. Forwarding copies every message to several people, and nobody knows who replied. #### 3. Authenticate before you send anything Mail from a new domain with no SPF, DKIM or DMARC records is far more likely to land in spam, and Gmail and Yahoo require authentication from bulk senders. Publish all three before your first outreach. Start DMARC at `p=none`, which only reports, and tighten it once the reports show your mail passing. [SPF, DKIM and DMARC explained](https://app.nexmail.nexprove.com/guides/spf-dkim-dmarc-explained) covers what each does. Keep cold outreach and newsletters away from the addresses customers write to. Many teams send campaigns from a subdomain or a separate sending provider, so a bad campaign cannot hurt support mail. Nexmail lets you connect several providers and set daily limits per workspace, per provider and per sending domain. #### 4. Choose where mail is read There are two broad options. A **hosted mailbox** provider (Google Workspace, Microsoft 365, Zoho Mail and others) gives each person a private mailbox that works in any mail app, priced per user. A **shared inbox** puts the team’s mail in one place with owners and notes. Many startups combine them later; early on, one tool the whole team actually checks matters more than features. Nexmail is a shared inbox that also gives each person an address, free for up to 9 seats, with mail leaving through your own Resend, Brevo or other provider. It runs in the browser and does not provide IMAP, so it suits a team that is happy to work in a web app and, often, in Slack. #### 5. Know what it will cost as you grow - The domain: a yearly fee at your registrar. - Nexmail: free up to 9 seats; the [Team plan](https://app.nexmail.nexprove.com/pricing) for more seats, the meeting notetaker and the AI calendar reader. - Sending: your provider’s own pricing. Resend and Brevo have free plans for low volumes; check their sites for current limits. #### 6. What to add later Booking links so prospects can pick a time without back-and-forth, a calendar shared by the team, a pipeline of everyone you are talking to, and notes from customer calls. Nexmail has all of these alongside the inbox; see [Booking links and calendar](https://app.nexmail.nexprove.com/use-cases/booking-and-calendar) and the [Sales pipeline](https://app.nexmail.nexprove.com/docs/sales-pipeline) doc. #### How to set it up 1. **Create a workspace.** [Sign up](https://app.nexmail.nexprove.com/signup) and name your organization. The Free plan covers up to 9 seats and needs no card. 2. **Add your domain.** Open **Get started** and add the domain you own. Nexmail lists the DNS records it needs, or publishes them for you on Cloudflare, Vercel or DigitalOcean. See [Connect your domain](https://app.nexmail.nexprove.com/docs/connect-your-domain). 3. **Connect a sending provider.** Connect Resend in one click, or add Brevo, Amazon SES, SMTP2GO or any SMTP server under **Settings → Providers**. Add more than one and Nexmail fails over between them. 4. **Invite the team and add shared addresses.** On **Teammates**, invite people by email and create general mailboxes such as support@, shared with everyone or only the people you pick. 5. **Send a test and route it.** Send yourself a message, reply to it, and, if you use Slack, connect it under **Settings → Slack** and choose which channel hears about each address. #### Questions ##### Should a startup use Google Workspace or a shared inbox? It depends on how you work. If everyone needs a private mailbox in a desktop or phone mail app, a hosted provider like Google Workspace fits. If the team mostly answers shared addresses together, a shared inbox fits. Nexmail can also read a Google Workspace inbox, so you can use both. ##### How many addresses does an early startup need? One per person, plus hello@ and, once you have customers, support@. Add more only when a stream of mail needs its own owner. ##### When should we tighten DMARC? After a few weeks of reports at `p=none` show that all your legitimate mail passes SPF or DKIM in alignment. Then move to `p=quarantine`, and later `p=reject`. ##### Can we send cold outreach from Nexmail? Campaigns are built in, with approval, pacing, follow-ups, opens, clicks and one-click unsubscribe. Addresses that opt out are blocked from future sends. Follow the law where your recipients are, and read the [Terms](https://app.nexmail.nexprove.com/terms) on anti-spam rules. ### Nexmail vs Front Source: https://app.nexmail.nexprove.com/compare/front Front and Nexmail both let a team answer email together. Front is a mature, paid customer communication platform built for support and account teams at scale. Nexmail is a free shared inbox on your own domain for small teams. Here is how they differ. #### The short answer Choose **Front** if you run a support or customer success team that needs analytics, SLAs, many channels besides email, and a long list of integrations, and you are happy to pay per seat for it. Choose **Nexmail** if you are a small team that wants addresses at your own domain, a shared inbox and Slack routing without a per-seat bill. #### At a glance | | Nexmail | Front | | --- | --- | --- | | **Price** | Free for up to 9 seats; Team plan for more seats, the meeting notetaker and the AI calendar reader | Paid, per seat. Check their site for current pricing and plan limits. | | **Addresses at your own domain** | Yes, for every person plus shared mailboxes | Works with the accounts you connect, such as Google Workspace or Microsoft 365 | | **How mail arrives and leaves** | Arrives through Resend’s inbound, your own mail server or Gmail; leaves through your own Resend, Brevo, SES, SMTP2GO, SMTP or Gmail account | Through the email accounts you connect to it | | **Assign, labels, internal notes** | Yes | Yes, with rules and workflows | | **Slack routing and replies from Slack** | Yes | Through integrations; see their site | | **Calendar sync and booking links** | Yes: Google, Outlook and CalDAV both ways | See their site | | **AI first drafts** | Yes, with the sales pipeline on; a person always sends | See their site | | **Desktop or phone apps** | No: runs in the browser, with no IMAP or POP access | Yes: desktop and mobile apps | #### How they differ **Where your mail lives.** Front sits on top of email accounts you already have, so you usually keep paying for those mailboxes and for Front. Nexmail receives mail for your domain itself, through Resend’s inbound or your own mail server, and sends it through providers you connect, many of which have free plans. **Depth.** Front has years of support-team features: reporting, SLAs, rule builders, and channels such as chat and SMS alongside email. Nexmail is narrower. It does email, Slack routing, a calendar with booking links, campaigns and a light sales pipeline, and it has no reporting dashboard for response times yet; team analytics is on the [roadmap](https://app.nexmail.nexprove.com/roadmap) as something being explored. **Delivery safety.** Nexmail’s particular focus is that mail is never lost: an inbound message that cannot be saved is refused so the sender retries, replies fail over between providers, and a message with no provider waits in the queue instead of failing. Each send is also checked for spoofed links, risky attachments and unsubscribed recipients. **Apps.** Front has desktop and mobile apps. Nexmail runs in the browser and has no native apps. #### When to choose Front instead - You have a support team of more than a handful of people and need reporting on response times and workload. - You answer customers on chat, SMS or social channels as well as email, in one place. - You need mature rule builders, SLAs and a wide range of integrations with CRMs and help desks. - Your team needs native desktop and phone apps. #### When Nexmail fits better - You are a small team, up to 9 seats, and want shared email on your own domain for free. - Your team already works in Slack and wants each address announced in its own channel. - You want a calendar, booking links and campaigns in the same place as the inbox. - You want to choose and own your sending providers, with failover between them. #### How to set it up 1. **Create a workspace.** [Sign up](https://app.nexmail.nexprove.com/signup) and name your organization. The Free plan covers up to 9 seats and needs no card. 2. **Add your domain.** Open **Get started** and add the domain you own. Nexmail lists the DNS records it needs, or publishes them for you on Cloudflare, Vercel or DigitalOcean. See [Connect your domain](https://app.nexmail.nexprove.com/docs/connect-your-domain). 3. **Connect a sending provider.** Connect Resend in one click, or add Brevo, Amazon SES, SMTP2GO or any SMTP server under **Settings → Providers**. Add more than one and Nexmail fails over between them. 4. **Invite the team and add shared addresses.** On **Teammates**, invite people by email and create general mailboxes such as support@, shared with everyone or only the people you pick. 5. **Send a test and route it.** Send yourself a message, reply to it, and, if you use Slack, connect it under **Settings → Slack** and choose which channel hears about each address. #### Questions ##### Is Nexmail a free Front alternative? For small teams answering email together, yes: the shared inbox, assignment, internal notes and Slack routing are free for up to 9 seats. It does not match Front’s reporting, multi-channel support or native apps. ##### Can I try Nexmail without moving my domain? Yes. Connect a Gmail or Google Workspace account with an app password and nothing changes in DNS. Or point a spare domain at a new workspace. ##### Does Nexmail have analytics like Front? Not yet. Every message is stored with its delivery history, but response-time reports are on the roadmap as something being explored, not a shipped feature. ##### How much does Front cost? Front is priced per seat across several plans. Prices change, so check Front’s own pricing page. ### Nexmail vs Missive Source: https://app.nexmail.nexprove.com/compare/missive Missive and Nexmail are both team inboxes for people who would rather talk about an email next to it than forward it around. They come at it from different sides: Missive is an email client your team installs; Nexmail is a web inbox that receives your domain’s mail itself. #### The short answer Choose **Missive** if your team wants a polished desktop and phone app that brings together existing Gmail, Outlook or IMAP accounts, with chat inside every conversation. Choose **Nexmail** if you want free addresses and shared mailboxes on your own domain, with Slack routing, provider failover and a calendar with booking links, and you are fine working in the browser. #### At a glance | | Nexmail | Missive | | --- | --- | --- | | **Price** | Free for up to 9 seats; Team plan for more seats, the meeting notetaker and the AI calendar reader | Free tier and paid per-seat plans. Check their site for current pricing and plan limits. | | **Addresses at your own domain** | Yes, for every person plus shared mailboxes | Through the accounts you connect, such as Gmail, Outlook or any IMAP mailbox | | **How mail arrives and leaves** | Arrives through Resend’s inbound, your own mail server or Gmail; leaves through your own Resend, Brevo, SES, SMTP2GO, SMTP or Gmail account | Through the email accounts you connect to it | | **Assign, labels, internal notes** | Yes | Yes, plus team chat inside conversations | | **Slack routing and replies from Slack** | Yes | See their site | | **Calendar sync and booking links** | Yes: Google, Outlook and CalDAV both ways | See their site | | **AI first drafts** | Yes, with the sales pipeline on; a person always sends | See their site | | **Desktop or phone apps** | No: runs in the browser, with no IMAP or POP access | Yes: desktop and mobile apps | #### How they differ **Client or service.** Missive is an email client: it connects to mailboxes you already pay for and gives your team a shared view of them. Nexmail is the place your domain’s mail arrives, with replies sent through your own providers, so you do not need a separate mailbox host for the addresses it handles. **Talking about mail.** Missive’s signature feature is chat inside each conversation. Nexmail uses internal notes on the thread, and announces each address in a Slack channel where the team can discuss and even reply. If your team already lives in Slack, Nexmail fits that; if you want discussion inside the mail app, Missive does. **Sending safety.** Nexmail checks every send for spoofed links, executable attachments, spoofed display names and unsubscribed recipients, fails over between providers, and has daily ceilings and an emergency stop for outgoing mail. **Apps.** Missive has native desktop and mobile apps. Nexmail runs in the browser only. #### When to choose Missive instead - Your team wants native desktop and phone apps. - You want to keep existing mailboxes at Google, Microsoft or an IMAP host and add collaboration on top. - You prefer chatting about an email inside the email app rather than in Slack. - People also want their personal mail, from several accounts, in the same app. #### When Nexmail fits better - You want team addresses at your domain without paying a mailbox host per user. - Each address should land in its own Slack channel. - You send campaigns and newsletters as well as replies, with limits and one-click unsubscribe. - You want booking links, a team calendar and, on the Team plan, a meeting notetaker next to the inbox. #### How to set it up 1. **Create a workspace.** [Sign up](https://app.nexmail.nexprove.com/signup) and name your organization. The Free plan covers up to 9 seats and needs no card. 2. **Add your domain.** Open **Get started** and add the domain you own. Nexmail lists the DNS records it needs, or publishes them for you on Cloudflare, Vercel or DigitalOcean. See [Connect your domain](https://app.nexmail.nexprove.com/docs/connect-your-domain). 3. **Connect a sending provider.** Connect Resend in one click, or add Brevo, Amazon SES, SMTP2GO or any SMTP server under **Settings → Providers**. Add more than one and Nexmail fails over between them. 4. **Invite the team and add shared addresses.** On **Teammates**, invite people by email and create general mailboxes such as support@, shared with everyone or only the people you pick. 5. **Send a test and route it.** Send yourself a message, reply to it, and, if you use Slack, connect it under **Settings → Slack** and choose which channel hears about each address. #### Questions ##### Is Nexmail a Missive alternative? For a team answering shared addresses on its own domain, yes. It does not replace Missive as a desktop or phone mail client, and it does not have chat inside conversations; it uses internal notes and Slack instead. ##### Can Nexmail connect my existing Gmail like Missive does? Yes. Connect a Gmail or Google Workspace account (with an app password, or Google sign-in in beta) or any IMAP/SMTP mailbox such as Zoho, Fastmail or iCloud. Nexmail reads the inbox about once a minute and sends as you through that mailbox. ##### Does Nexmail have a mobile app? No. Nexmail runs in the browser. ##### How much does Missive cost? Missive has a free tier and paid per-seat plans. Prices and limits change, so check Missive’s own pricing page. ### Nexmail vs Google Groups Source: https://app.nexmail.nexprove.com/compare/google-groups Many teams start support@ or sales@ as a Google Group, sometimes with its collaborative inbox turned on. It is free with Google and close at hand. Here is how it compares with a dedicated shared inbox like Nexmail, and when to stay with Google. #### The short answer Stay with **Google Groups** if your company already pays for Google Workspace, the address gets a few messages a day, and members are happy to reply from their own Gmail. Move to **Nexmail** when you need to know who owns each message, keep notes the customer cannot see, route addresses to Slack, or answer without every reply coming from a personal mailbox. #### At a glance | | Nexmail | Google Groups | | --- | --- | --- | | **Price** | Free for up to 9 seats; Team plan for more seats, the meeting notetaker and the AI calendar reader | Included with a Google account; a group at your own domain needs Google Workspace, paid per user | | **Addresses at your own domain** | Yes, for every person plus shared mailboxes | Yes, with Google Workspace; otherwise a googlegroups.com address | | **How mail arrives and leaves** | Arrives through Resend’s inbound, your own mail server or Gmail; leaves through your own Resend, Brevo, SES, SMTP2GO, SMTP or Gmail account | Through Google; replies go out from each member’s own Gmail | | **Assign, labels, internal notes** | Yes | Collaborative inbox can assign and mark resolved; no private internal notes | | **Slack routing and replies from Slack** | Yes | Not built in | | **Calendar sync and booking links** | Yes: Google, Outlook and CalDAV both ways | Google Calendar, separately | | **AI first drafts** | Yes, with the sales pipeline on; a person always sends | Depends on your Workspace plan | | **Desktop or phone apps** | No: runs in the browser, with no IMAP or POP access | Yes, through the Gmail apps | #### How a Google Group works as an inbox A group has an address, and every message sent to it is copied to each member and kept in the group’s archive. With the **collaborative inbox** feature, members can also assign a conversation and mark it resolved in the Groups web interface. Replies usually go out from a member’s own Gmail, so the customer sees a person’s address, and the rest of the team only sees the reply if it was copied back to the group. #### Where it falls short - **Duplicate copies.** Each member gets their own copy, so it is easy for two people to answer, or for everyone to assume someone else did. - **No private notes.** Discussion about a customer happens in separate emails or chat, away from the thread. - **Replies from personal mailboxes.** The conversation’s history ends up split between people. - **No routing.** One group, one list of members; there is no rule that sends a domain’s mail to a Slack channel. #### What Nexmail adds One copy of each conversation in a shared inbox, with an owner, labels, snooze, follow-ups and internal notes. Replies leave from the shared address, so the whole team sees them. Each address can be announced in its own Slack channel and answered from there. And you do not need Google Workspace: mail can arrive through Resend’s inbound and leave through Resend or Brevo. If you are on Google already, Nexmail can also read a Gmail or Workspace inbox with an app password. #### When to stay with Google Groups - You already pay for Google Workspace and the address is quiet. - The group is really a distribution list, for example everyone@, where nobody needs to reply. - You want everything inside Google’s admin console and nothing else to manage. #### How to set it up 1. **Create a workspace.** [Sign up](https://app.nexmail.nexprove.com/signup) and name your organization. The Free plan covers up to 9 seats and needs no card. 2. **Connect your Google account or your domain.** Connect a Gmail or Workspace account with an app password and nothing changes in DNS ([how](https://app.nexmail.nexprove.com/docs/connect-gmail)). Or add your domain under **Get started** to receive through Resend. 3. **Create the shared mailbox.** On **Teammates**, create support@ as a general mailbox and choose who can see it. 4. **Route it to Slack (optional).** Connect Slack and pick a channel for support@ under **Settings → Routes**. 5. **Retire the group.** Once mail for the address arrives in Nexmail, remove the group address in Google so nobody answers from two places. #### Questions ##### Is Google Groups collaborative inbox free? Google Groups is included with a Google account. A group at your own domain needs Google Workspace, which is paid per user. Check Google’s site for current plans. ##### Can Nexmail work with Google Workspace? Yes. Connect a Workspace account with an app password: Nexmail reads its inbox and sends as you through Google. You can also keep Workspace for personal mailboxes and use Nexmail for shared addresses on a subdomain or another domain. ##### Do customers see a person’s address when we reply? In Nexmail, replies from a shared mailbox leave from the shared address, such as support@. ##### Does Nexmail replace Gmail? Not as a personal mail app. Nexmail runs in the browser and does not provide IMAP for mail clients. ### Nexmail vs Zoho Mail Source: https://app.nexmail.nexprove.com/compare/zoho-mail Zoho Mail and Nexmail both give a small business email at its own domain, and both can cost little or nothing. They are different kinds of product: Zoho Mail hosts a private mailbox for each person; Nexmail is a shared inbox for a team. #### The short answer Choose **Zoho Mail** if each person needs their own full mailbox that works in Outlook, Apple Mail or a phone’s mail app, or if you use other Zoho apps. Choose **Nexmail** if your team mostly answers mail together, wants owners and notes on each conversation, routes addresses to Slack, and is happy working in the browser. #### At a glance | | Nexmail | Zoho Mail | | --- | --- | --- | | **Price** | Free for up to 9 seats; Team plan for more seats, the meeting notetaker and the AI calendar reader | Has offered a free plan for small teams with limits, and paid per-user plans. Check their site for current pricing and plan limits. | | **Addresses at your own domain** | Yes, for every person plus shared mailboxes | Yes, a hosted mailbox per user | | **How mail arrives and leaves** | Arrives through Resend’s inbound, your own mail server or Gmail; leaves through your own Resend, Brevo, SES, SMTP2GO, SMTP or Gmail account | Zoho hosts the mailboxes and delivers the mail | | **Assign, labels, internal notes** | Yes | Group mailboxes; see their site for collaboration features | | **Slack routing and replies from Slack** | Yes | Not its focus | | **Calendar sync and booking links** | Yes: Google, Outlook and CalDAV both ways | Zoho Calendar | | **AI first drafts** | Yes, with the sales pipeline on; a person always sends | See their site | | **Desktop or phone apps** | No: runs in the browser, with no IMAP or POP access | Yes: mobile apps, and IMAP or POP on the plans that include it | #### How they differ **Mailbox host or team inbox.** Zoho Mail stores and delivers your mail, like Google Workspace or Microsoft 365. Each person gets a private mailbox, and mail clients connect to it. Nexmail is built around the team: one inbox where conversations are assigned, labelled and noted on, with each person still having their own address. **Sending.** Zoho sends your mail for you. Nexmail sends through providers you connect, such as Resend, Brevo or Amazon SES, and fails over between them, which gives you more control and keeps sending costs with the provider’s own pricing. **Around the inbox.** Zoho has a broad suite of business apps. Nexmail keeps a smaller set close to the mail: Slack routing, a calendar that syncs with Google, Outlook and CalDAV, booking links, campaigns, a sales pipeline and a meeting notetaker on the Team plan. #### When to choose Zoho Mail instead - Each person needs a private mailbox that works in desktop and phone mail apps. - You want one company to host the mail, with no separate sending provider to set up. - You already use, or plan to use, other Zoho apps. #### When Nexmail fits better - Most of your mail is to shared addresses that several people answer. - You want each address routed to a Slack channel. - You want to own your sending provider and have mail fail over when one is down. - You run campaigns or newsletters from the same tool, with limits and one-click unsubscribe. The two can also work together: keep personal mailboxes with a hosted provider and put shared addresses, perhaps on a subdomain such as help.yourcompany.com, in Nexmail. #### How to set it up 1. **Create a workspace.** [Sign up](https://app.nexmail.nexprove.com/signup) and name your organization. The Free plan covers up to 9 seats and needs no card. 2. **Add your domain.** Open **Get started** and add the domain you own. Nexmail lists the DNS records it needs, or publishes them for you on Cloudflare, Vercel or DigitalOcean. See [Connect your domain](https://app.nexmail.nexprove.com/docs/connect-your-domain). 3. **Connect a sending provider.** Connect Resend in one click, or add Brevo, Amazon SES, SMTP2GO or any SMTP server under **Settings → Providers**. Add more than one and Nexmail fails over between them. 4. **Invite the team and add shared addresses.** On **Teammates**, invite people by email and create general mailboxes such as support@, shared with everyone or only the people you pick. 5. **Send a test and route it.** Send yourself a message, reply to it, and, if you use Slack, connect it under **Settings → Slack** and choose which channel hears about each address. #### Questions ##### Is Zoho Mail free? Zoho has offered a free plan for small teams, with limits on users, storage and features such as IMAP access. Check Zoho’s site for the current terms. ##### Is Nexmail a mail host like Zoho? Partly. Nexmail receives and stores the mail for the addresses it handles, but it does not offer IMAP or POP, and it sends through a provider you connect rather than its own servers. ##### Can I use Nexmail and a mailbox provider on the same domain? Mail for a domain or subdomain goes wherever its MX record points, so pick one per domain. A common split is personal mailboxes on the main domain and shared addresses on a subdomain in Nexmail. ##### Which is cheaper for five people? Nexmail is free for up to 9 seats, plus your sending provider’s own pricing, which is often free at low volumes. Compare with Zoho’s current plans on its site. ### Booking links, team calendar and meeting notes Source: https://app.nexmail.nexprove.com/use-cases/booking-and-calendar Most meetings start in an email and end with notes nobody can find. Nexmail keeps the whole loop in one place: a booking link to pick the time, a calendar that syncs with the ones you use, and a notetaker whose summary lands back on the email thread. #### From email to meeting to notes 1. A customer replies to your email. You insert your **booking link** from the editor toolbar instead of trading times. 2. They pick a slot that is free on your calendars. The event lands on your calendar, both of you get an invite, and a Google Meet link is created when it goes on a Google calendar. 3. On the Team plan, the **notetaker** joins the Meet, Zoom or Teams call when it starts. 4. Afterwards the transcript and a short summary are on the event, on the email thread as a note only your team can see, and in that thread’s Slack thread. #### Booking links A booking link is a public page where people choose a free time. You set your weekly hours, the meeting lengths people can pick (for example 15, 30 or 60 minutes), your time zone, the gap kept around existing events, the minimum notice and how many days ahead people can book. You choose which calendar bookings go on and whether each gets a Google Meet link, your own video link or a place. - Only times that are free on your calendars are offered, and two people cannot take the same slot. - The confirmation carries the invite and a link to cancel, and comes from your own address when you have one. - A link can be paused without deleting it. - Booking links are on the Free plan. If you mainly use a scheduling tool to share one or two links, this can replace it, with the booking sitting next to the conversation that led to it. Dedicated scheduling tools offer more, such as routing forms, round-robin across a team and payments; Nexmail’s booking links do not do those. #### A team calendar that fills itself - A **Team** calendar everyone shares, and a private one for each person. - Google, Outlook, iCloud, Fastmail and any CalDAV server sync **both ways**; any calendar link (ICS) can be added read-only. - Invites in your email, with their updates and cancellations, land on the calendar exactly. - A line like “call on Thursday at 3pm” in an email becomes a tentative event, and each thread shows the meetings it set up. - **Quick add**: type “Lunch with sam@acme.com Friday 1pm for an hour” and the event opens filled in for you to check. On the Team plan, the **AI calendar reader** also finds meetings in loosely worded email and quick-add lines that a plain parser would miss. #### Meeting notetaker Open a meeting on the calendar that has a Meet, Zoom or Teams link and choose **Send notetaker**, or tick **Send the notetaker to every booking** on a booking link. The notetaker joins as a visible participant. The summary has up to three short parts, decisions, action items with who does what, and open questions, and it never adds anything that was not said. > **Tell people it is recording.** Let everyone on the call know the notetaker is there, as the law where you and they are may require. #### For AI assistants If you use Claude or another MCP client, connect Nexmail and it can list, create, move and delete calendar events and find free time, within what your own account can see. See [AI agents and scripts](https://app.nexmail.nexprove.com/docs/ai-agents). #### What is free and what is Team | Feature | Free | Team | | --- | --- | --- | | Team and personal calendars, two-way sync | Yes | Yes | | Meetings from email invites, quick add | Yes | Yes | | Booking links with Google Meet | Yes | Yes | | AI calendar reader | No | Yes | | Meeting notetaker for Meet, Zoom and Teams | No | Yes | #### How to set it up 1. **Create a workspace.** [Sign up](https://app.nexmail.nexprove.com/signup) for free and add your domain, or connect Gmail. 2. **Connect your calendars.** Open **Settings → Calendars** and connect Google, Outlook or a CalDAV calendar. See [Connect a calendar](https://app.nexmail.nexprove.com/docs/connect-a-calendar). 3. **Create a booking link.** In **Settings → Booking links**, choose **New booking link**, set your hours, lengths and notice, and pick the calendar and video. See [Booking links](https://app.nexmail.nexprove.com/docs/booking-links). 4. **Share it.** Copy the link, or insert it into any email from the editor toolbar. 5. **Add notes to calls (Team plan).** Send the notetaker from a meeting on the calendar, or turn it on for every booking. See [Meeting notetaker](https://app.nexmail.nexprove.com/docs/meeting-notetaker). #### Questions ##### Are Nexmail booking links free? Yes. Booking links, the team calendar and two-way calendar sync are on the Free plan. The notetaker and the AI calendar reader come with the Team plan. ##### Is it a Calendly alternative? For sharing a personal booking page with set hours, lengths, notice and a Meet link, yes. It does not do routing forms, round-robin across a team or taking payments. ##### Which video tools does it support? Booking links can create a Google Meet link when the booking goes on a Google calendar, or use your own link. The notetaker joins Google Meet, Zoom and Microsoft Teams calls. ##### Where do the meeting notes go? On the calendar event, on the email thread the meeting came from as an internal note, and in that thread’s Slack thread when there is one. ##### What if the notetaker cannot join? The event says so, with the reason. If the notetaker service is down, Nexmail keeps trying rather than dropping the request. ### How to set up email on your own domain Source: https://app.nexmail.nexprove.com/guides/set-up-email-on-your-domain Email at your own domain needs a handful of DNS records: one to receive, three to send well. This guide explains each, in the order to add them, and how to check the result. The examples use Nexmail, which shows the exact values for you, but the records are the same idea everywhere. #### Before you start - A domain you own, and a login for the place its DNS is managed (your **DNS host**). That is usually your registrar or Cloudflare. Run `dig NS yourdomain.com +short`, or any “NS lookup” site, to see which. - A decision on where mail for the domain should arrive. A domain has one set of MX records, so if mail already reaches another provider, adding new MX records moves it. - About thirty minutes. Most DNS changes are visible within minutes; old cached answers can take up to 48 hours to expire. #### The records, and what each does These are the records Nexmail asks for when it sends and receives through Resend, shown for example.com. Always copy the exact values from your own setup: the region and the DKIM key differ for every account. | Type | Host | Example value | What it does | | --- | --- | --- | --- | | MX | `send` | `feedback-smtp.us-east-1.amazonses.com (priority 10)` | Lets Resend collect bounces for the mail you send. It only covers the send subdomain, so your own mail is untouched. | | TXT | `send` | `v=spf1 include:amazonses.com ~all` | SPF. Tells other mail servers that Resend is allowed to send for you. | | TXT | `resend._domainkey` | `p=MIGfMA0GCSqGSIb3… (a long key)` | DKIM. A public key that proves each message really came from your domain and was not changed on the way. | | TXT | `_dmarc` | `v=DMARC1; p=none; rua=mailto:dmarc@example.com` | Tells receivers what to do with mail that fails the checks. p=none means report only, block nothing, which is the safe start. | | MX | `@` | `inbound-smtp.us-east-1.amazonaws.com (priority 10)` | Sends mail for your domain to Nexmail through Resend. Add it only if Nexmail should receive your mail: it replaces wherever your mail goes today. | Sending through Brevo instead? You publish Brevo’s SPF include and the DKIM records Brevo gives you under its domain settings, and the same DMARC record. Nexmail lists whichever set your provider needs. #### Receiving: the MX record An MX record at `@` tells the world which server accepts mail for your domain. Point it at your receiving service and remove the old MX records, or mail is split between two places. If you are not ready to move your mail, you can receive through a Gmail or Google Workspace account instead and add no MX record at all; see [Connect Gmail](https://app.nexmail.nexprove.com/docs/connect-gmail). #### Sending: SPF SPF is a TXT record that lists the services allowed to send for a domain. A host can have only **one** record starting with `v=spf1`; if one exists, merge the includes into it rather than adding a second, or both fail. #### Sending: DKIM DKIM is a public key published at a named selector, such as `resend._domainkey`. Your provider signs each message with the matching private key, and receivers use the record to check the signature. Copy the key in full; a truncated key is the most common reason DKIM fails. #### Sending: DMARC DMARC, a TXT record at `_dmarc`, tells receivers what to do when a message fails SPF and DKIM, and where to send reports. Start with `p=none`, which only reports. Nexmail files the daily reports away under their own label so they do not fill the inbox. #### The mistakes that stop a domain verifying - **The full name in the host field.** Most DNS hosts add your domain for you, so `send.example.com` becomes `send.example.com.example.com`. Type only `send`, `_dmarc` or `@`. - **The Cloudflare proxy left on.** Mail records must be DNS only, the grey cloud. See [Cloudflare](https://app.nexmail.nexprove.com/docs/connect-your-domain/cloudflare). - **MX records in the wrong place on Namecheap.** They go under Mail Settings, set to Custom MX. See [Namecheap](https://app.nexmail.nexprove.com/docs/connect-your-domain/namecheap). - **Deleting and re-adding a record that looks right.** That only restarts the wait. #### Check that it works In Nexmail, **Check DNS** looks up every record through public resolvers and marks each one found. Then send a test from your domain to an outside address, such as a personal Gmail, and reply to it. In Gmail, **Show original** on the received message shows `SPF: PASS`, `DKIM: PASS` and `DMARC: PASS` when everything lines up. #### How to set it up 1. **Create a workspace.** [Sign up](https://app.nexmail.nexprove.com/signup) for free and open **Get started**. 2. **Add your domain.** Nexmail asks your provider for the exact records your domain needs and lists them. 3. **Publish the records.** Paste a Cloudflare, Vercel or DigitalOcean API token and Nexmail adds them, or copy them into your DNS host by hand using [the steps for every host](https://app.nexmail.nexprove.com/docs/connect-your-domain#other-hosts). 4. **Check DNS.** Click **Check DNS**. Nexmail keeps checking until every record is found. 5. **Send a test.** Send to an outside address, reply, and confirm SPF, DKIM and DMARC pass. #### Questions ##### How long does it take for DNS records to work? Usually minutes, sometimes an hour. Old cached answers can last up to 48 hours. Nexmail keeps checking on its own. ##### Will adding these records break my existing email? The sending records (SPF, DKIM, DMARC) sit beside what you have, as long as you merge SPF into one record. The receiving MX record does move where your mail goes, so add it only when you are ready. ##### Do I have to move my DNS to Cloudflare? No. Any DNS host works. If yours is not Cloudflare, Vercel or DigitalOcean, Nexmail can move your DNS to Cloudflare for free so later changes are one click, but adding the records by hand is fine. ##### Can I use a subdomain for email? Yes. Records for a subdomain such as help.yourcompany.com are separate from the main domain, which is a common way to keep shared or bulk mail apart from personal mailboxes. ### SPF, DKIM and DMARC explained Source: https://app.nexmail.nexprove.com/guides/spf-dkim-dmarc-explained SPF, DKIM and DMARC are three DNS records that let a receiving mail server check that a message claiming to be from your domain really is. Without them, your mail is easier to fake and more likely to land in spam. Here is what each one does, in plain language. #### Why they exist Email was designed with no way to prove who sent a message: anyone can write any address in the From line. SPF, DKIM and DMARC were added on top, each answering one question. Large mailbox providers, including Gmail and Yahoo, now require them from bulk senders, and treat unauthenticated mail with more suspicion. #### SPF: who may send SPF (Sender Policy Framework) is a TXT record listing the servers allowed to send mail for a domain. The receiver checks the server that delivered the message against that list. An SPF record for a domain that sends through Resend: ``` v=spf1 include:amazonses.com ~all ``` - `include:` adds another service’s list. Each provider tells you its own. - `~all` means “anything else is suspicious”; `-all` means “anything else fails”. - Only **one** SPF record per host. Merge services into one line. - SPF allows at most **10 DNS lookups**. Every `include` counts, and the ones it includes count too, so long chains break quietly. - SPF checks the **return-path** domain, not the From address people see. That is why DMARC is needed. #### DKIM: was it changed DKIM (DomainKeys Identified Mail) signs each message. Your provider holds a private key and adds a signature header; you publish the public key in DNS at a **selector**, such as `resend._domainkey.example.com`. The receiver fetches the key and checks that the signed parts of the message were not changed and that the signing domain is the one named. Each sending service has its own selector, so several can coexist. DKIM survives forwarding better than SPF, because the signature travels with the message. #### DMARC: what to do when checks fail DMARC (Domain-based Message Authentication, Reporting and Conformance) ties the other two to the address people actually see. A message **passes DMARC** when SPF or DKIM passes **and** the domain it passed for matches the From domain. This matching is called **alignment**. A DMARC record that only reports: ``` v=DMARC1; p=none; rua=mailto:dmarc@example.com ``` | Policy | What receivers do with failing mail | When to use it | | --- | --- | --- | | `p=none` | Deliver as normal, and report | At the start, while you find every service that sends for you | | `p=quarantine` | Treat as suspicious, usually spam | Once reports show your real mail passing | | `p=reject` | Refuse it | When you are sure, for the strongest protection against spoofing | The `rua` address receives daily aggregate reports from large providers: which servers sent mail as your domain and whether it passed. They are XML and arrive daily, so it helps to file them automatically; Nexmail puts them under their own label, marked read, and keeps them out of Slack. #### How they work together 1. Your message arrives. The receiver checks SPF against the return-path domain. 2. It checks the DKIM signature against the key at your selector. 3. It looks up your DMARC record and asks: did either pass, for a domain that matches the From address? 4. If yes, DMARC passes. If no, it applies your policy and records the result in its report to you. #### Common mistakes - Two SPF records on the same host, so both fail. - A DKIM key pasted with a line break or cut short. - Jumping straight to `p=reject` and blocking a service you forgot sends for you, such as invoicing or a newsletter tool. - Never reading the reports, so a problem is only noticed when customers stop getting mail. Nexmail checks SPF, DKIM and DMARC for your sending domain before a send and warns when one is missing or failing. It never blocks a send for them, because a record that has not spread yet should not hold up a reply to a customer. #### How to set it up 1. **Add your domain.** [Sign up](https://app.nexmail.nexprove.com/signup), open **Get started** and add your domain. Nexmail lists the SPF, DKIM and DMARC records your provider needs. 2. **Publish them.** Let Nexmail publish them with a Cloudflare, Vercel or DigitalOcean token, or add them by hand at your DNS host. 3. **Check them.** Click **Check DNS**. Each record is looked up through public resolvers. 4. **Start DMARC at p=none.** Read the reports for a few weeks, then move to `p=quarantine` and later `p=reject`. #### Questions ##### Do I need all three? Yes, in practice. SPF and DKIM prove a message is genuine in different ways, and DMARC is what ties them to the address people see and tells receivers what to do. Large providers expect all three from anyone who sends in volume. ##### What does DMARC p=none do? Nothing to your mail: receivers deliver it as usual and send you reports. It is the safe way to start and learn which services send as your domain. ##### Why does my mail fail DMARC when SPF passes? Usually alignment. SPF passed for your provider’s return-path domain, not for your From domain. A DKIM signature from your own domain fixes it, which is why DKIM matters most. ##### Can I have more than one DKIM record? Yes. Each service uses its own selector, such as `resend._domainkey` and `mail._domainkey`, so they do not clash.