Spam and virus checks
A message that fails the spam or virus check stays in the inbox's Spam view and is never forwarded.
Support requests, replies and invoices sent to your own addresses land in Notix. Read them in the console, pull them from the API, get each one at your webhook, and forward copies to the people who need them.
email.receivedReceive on a domain you already send from, or on a subdomain of it, so your existing mailboxes keep working.
Open a verified domain, pick the name to receive on and press Turn on receiving. The console shows the MX record to add at your DNS provider, with priority 10, and checks it for you.
Type Host Value Priority
MX inbound.acme.com inbound-smtp.eu-west-1.amazonaws.com 10
Mail to any address on inbound.acme.com is accepted and kept.
The same message is in the shared inbox, in the API and at your webhook.
Received mail lives under Emails, then Receiving. Anyone on the team can open a message, read it and download its files.
import { Notix } from "notix-js";
const notix = new Notix(process.env.NOTIX_API_KEY);
// The newest messages your inboxes received.
const { data: page } = await notix.inbound.list();
// One message, then its files.
const { data: message } = await notix.inbound.get(messageId);
const { data: files } = await notix.inbound.listAttachments(messageId);
const { data: link } = await notix.inbound.getAttachmentLink(messageId, attachmentId);
import { Notix } from "notix-js";
const notix = new Notix(process.env.NOTIX_API_KEY);
const hooks = notix.webhooks(process.env.NOTIX_WEBHOOK_SECRET);
export async function POST(request: Request) {
const event = hooks.constructEvent(await request.text(), { headers: request.headers });
if (event.type === "email.received") {
await openSupportTicket(event.data);
}
return new Response("ok");
}
curl https://app.usenotix.dev/api/v1/inbound/messages \
-H "Authorization: Bearer $NOTIX_API_KEY"
Rules decide which addresses forward and where to. Forwards go from your own domain, so they pass SPF, DKIM and DMARC.
By default a rule sends each email on exactly as it arrived. Switch it to a forwarded message and the copy reads the way a mail app forwards it: your note on top, the Forwarded message block, then the email, with Fwd: in the subject.
Hello, the total on invoice 4471 is wrong. Can you check it?
notix.forwarding.updateRule(ruleId, { passthrough: true })A pattern can be one exact address, every address that starts with a prefix such as orders-*@inbound.acme.com, or every address on your receiving domain. Add a subject prefix and pick the From address on your verified domain.
Forwarding only reaches addresses that confirmed they want the mail, and the tester tells you which rule an address would use before you rely on it.
const { data: destination } = await notix.forwarding.addDestination("amina@acme.com");
// Amina gets a link to confirm. Nothing is forwarded to her before she does.
await notix.forwarding.createRule({
name: "Billing to Amina",
pattern: "billing@inbound.acme.com",
destinationIds: [destination.destination.id],
fromAddress: "billing@acme.com",
subjectPrefix: "[Billing]",
});
// Which rule would this address use?
await notix.forwarding.test("billing@inbound.acme.com");
A message that fails the spam or virus check stays in the inbox's Spam view and is never forwarded.
Messages Notix already forwarded, out-of-office replies, bounces and duplicates are skipped and logged with the reason.
Each forward and each skip is in the rule's log, in the console or with notix.forwarding.log(ruleId). See the forwarding guide.
Signed webhook events for email, contacts, domains, SMS and inbound mail, retried when your endpoint is down, with every delivery logged.
Explore WebhooksSend, batch, schedule and retry safely with idempotency keys, then follow every message through logs, events and signed webhooks.
Explore Email APISPF, DKIM and DMARC records ready to publish, one-click DNS with Domain Connect, and a domain that pauses itself before bounces hurt it.
Explore DeliverabilityYour first inbox has an address the moment you sign up. Add an MX record when you want your own domain.