[{"data":1,"prerenderedAt":501},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Falternatives\u002Fmailosaur\u002F":109,"\u002Fdocs\u002Falternatives\u002Fmailosaur\u002F-surround":496},[4,8,22,26,43,92],{"title":5,"path":6,"stem":7},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started",{"title":9,"path":10,"stem":11,"children":12,"page":21},"Setup","\u002Fdocs\u002Fsetup","1.docs\u002F2.setup",[13,17],{"title":14,"path":15,"stem":16},"Domain","\u002Fdocs\u002Fsetup\u002Fdomain","1.docs\u002F2.setup\u002F2.domain",{"title":18,"path":19,"stem":20},"Email","\u002Fdocs\u002Fsetup\u002Faccount","1.docs\u002F2.setup\u002F3.account",false,{"title":23,"path":24,"stem":25},"Email Testing API","\u002Fdocs\u002Fapi","1.docs\u002F3.api",{"title":27,"path":28,"stem":29,"children":30,"page":21},"Features","\u002Fdocs\u002Ffeatures","1.docs\u002F4.features",[31,35,39],{"title":32,"path":33,"stem":34},"Account","\u002Fdocs\u002Ffeatures\u002Faccount","1.docs\u002F4.features\u002F1.account",{"title":36,"path":37,"stem":38},"Mailbox","\u002Fdocs\u002Ffeatures\u002Fmailbox","1.docs\u002F4.features\u002F2.mailbox",{"title":40,"path":41,"stem":42},"Messages","\u002Fdocs\u002Ffeatures\u002Fmessage","1.docs\u002F4.features\u002F3.message",{"title":44,"path":45,"stem":46,"children":47,"page":21},"Guides","\u002Fdocs\u002Fguides","1.docs\u002F5.guides",[48,52,56,60,64,68,72,76,80,84,88],{"title":49,"path":50,"stem":51},"SMTP Test","\u002Fdocs\u002Fguides\u002Fsend-test-email","1.docs\u002F5.guides\u002F01.send-test-email",{"title":53,"path":54,"stem":55},"API Quickstart","\u002Fdocs\u002Fguides\u002Femail-testing-api","1.docs\u002F5.guides\u002F02.email-testing-api",{"title":57,"path":58,"stem":59},"CI","\u002Fdocs\u002Fguides\u002Fci","1.docs\u002F5.guides\u002F03.ci",{"title":61,"path":62,"stem":63},"Catch-All","\u002Fdocs\u002Fguides\u002Fcatch-all","1.docs\u002F5.guides\u002F04.catch-all",{"title":65,"path":66,"stem":67},"SPF, DKIM, DMARC","\u002Fdocs\u002Fguides\u002Fspf-dkim-dmarc","1.docs\u002F5.guides\u002F05.spf-dkim-dmarc",{"title":69,"path":70,"stem":71},"Playwright","\u002Fdocs\u002Fguides\u002Fe2e","1.docs\u002F5.guides\u002F06.e2e",{"title":73,"path":74,"stem":75},"Cypress","\u002Fdocs\u002Fguides\u002Fcypress","1.docs\u002F5.guides\u002F07.cypress",{"title":77,"path":78,"stem":79},"Email Clients","\u002Fdocs\u002Fguides\u002Femail-clients","1.docs\u002F5.guides\u002F08.email-clients",{"title":81,"path":82,"stem":83},"AI Agents","\u002Fdocs\u002Fguides\u002Fagents","1.docs\u002F5.guides\u002F09.agents",{"title":85,"path":86,"stem":87},"Local Development","\u002Fdocs\u002Fguides\u002Flocal-development","1.docs\u002F5.guides\u002F10.local-development",{"title":89,"path":90,"stem":91},"Size Limits","\u002Fdocs\u002Fguides\u002Femail-size-limits","1.docs\u002F5.guides\u002F11.email-size-limits",{"title":93,"path":94,"stem":95,"children":96,"page":21},"Alternatives","\u002Fdocs\u002Falternatives","1.docs\u002F6.alternatives",[97,101,105],{"title":98,"path":99,"stem":100},"Mailtrap","\u002Fdocs\u002Falternatives\u002Fmailtrap","1.docs\u002F6.alternatives\u002F1.mailtrap",{"title":102,"path":103,"stem":104},"Mailosaur","\u002Fdocs\u002Falternatives\u002Fmailosaur","1.docs\u002F6.alternatives\u002F2.mailosaur",{"title":106,"path":107,"stem":108},"Mailinator","\u002Fdocs\u002Falternatives\u002Fmailinator","1.docs\u002F6.alternatives\u002F3.mailinator",{"id":110,"title":111,"body":112,"description":490,"extension":491,"meta":492,"navigation":493,"path":103,"seo":494,"stem":104,"__hash__":495},"docs\u002F1.docs\u002F6.alternatives\u002F2.mailosaur.md","Mailosaur Alternative for Email Testing",{"type":113,"value":114,"toc":484},"minimark",[115,119,137,142,266,270,313,317,362,366,373,383,394,444,474,480],[116,117,118],"p",{},"Mailosaur is built for QA automation across email and SMS. A test waits for a message, pulls out a link or a code, and carries on. smtp.dev covers the email half of that, including one-time codes sent by email. If your suite also reads codes from SMS or an authenticator app, stay on Mailosaur.",[116,120,121,122,126,127,130,131,136],{},"For email-only suites, the address model is the difference to understand first. A Mailosaur inbox has its own domain, like ",[123,124,125],"code",{},"abc123.mailosaur.net",", and any address on it works without setup. Here, addresses live on your own domain. Each one is an account you create, or a plus alias of one, like ",[123,128,129],{},"qa+anything@test.example.com",", on any plan. A ",[132,133,135],"a",{"href":134},"\u002Fdocs\u002Fguides\u002Fcatch-all\u002F","catch-all"," on Pro or Max accepts every address.",[138,139,141],"h2",{"id":140},"at-a-glance","At a Glance",[143,144,145,159],"table",{},[146,147,148],"thead",{},[149,150,151,154,156],"tr",{},[152,153],"th",{},[152,155,102],{},[152,157,158],{},"smtp.dev",[160,161,162,174,185,196,211,222,233,244,255],"tbody",{},[149,163,164,168,171],{},[165,166,167],"td",{},"Price per month",[165,169,170],{},"Personal from $20, Core from $50, billed yearly. Enterprise is quoted",[165,172,173],{},"$0, $7, or $20",[149,175,176,179,182],{},[165,177,178],{},"Free",[165,180,181],{},"A 14-day trial",[165,183,184],{},"Lite, with no time limit",[149,186,187,190,193],{},[165,188,189],{},"Inbound email",[165,191,192],{},"15,000 a month and 500 a day on Personal. 75,000 and 2,500 on Core",[165,194,195],{},"No message quota",[149,197,198,201,208],{},[165,199,200],{},"Addresses",[165,202,203,204,207],{},"Any address on the inbox's ",[123,205,206],{},"mailosaur.net"," domain",[165,209,210],{},"Accounts on your domain and their plus aliases. Any address with a catch-all on Pro and Max",[149,212,213,216,219],{},[165,214,215],{},"Your own domain",[165,217,218],{},"Enterprise",[165,220,221],{},"Every plan",[149,223,224,227,230],{},[165,225,226],{},"Reading mail",[165,228,229],{},"API and client libraries on every plan. IMAP and POP3 on Core and Enterprise",[165,231,232],{},"REST API, SSE, IMAP, and POP3 on every plan",[149,234,235,238,241],{},[165,236,237],{},"SMS and authenticator codes",[165,239,240],{},"Core add-on, from $37.50 a month",[165,242,243],{},"No. Codes sent by email work like any other message",[149,245,246,249,252],{},[165,247,248],{},"Client previews",[165,250,251],{},"Core add-on, from $25 a month",[165,253,254],{},"No. Open the account in a mail client over IMAP",[149,256,257,260,263],{},[165,258,259],{},"Users",[165,261,262],{},"1 on Personal, up to 3. 5 seats on Core. SSO and SCIM on Enterprise",[165,264,265],{},"Single user",[138,267,269],{"id":268},"stay-on-mailosaur-when","Stay on Mailosaur When",[271,272,273,281,292,302,307],"ul",{},[274,275,276,280],"li",{},[277,278,279],"strong",{},"A test reads codes from SMS or an authenticator app."," smtp.dev only receives email.",[274,282,283,286,287,291],{},[277,284,285],{},"You need client previews or accessibility checks."," Both are on Core. The ",[132,288,290],{"href":289},"\u002Fdocs\u002Ffeatures\u002Fmessage\u002F#audit","audit"," here checks sender configuration, HTML structure, links, and images, but doesn't render the message in other clients.",[274,293,294,297,298,301],{},[277,295,296],{},"Any local part should work with no setup, on the cheapest plan."," That's how a Mailosaur inbox behaves. Lite covers ",[123,299,300],{},"qa+anything@"," with plus aliases, but arbitrary addresses take a catch-all, which starts on Pro.",[274,303,304],{},[277,305,306],{},"Several people need logins, SSO, or SCIM.",[274,308,309,312],{},[277,310,311],{},"Your tests use Mailosaur's client libraries and pass."," There's nothing to gain from rewriting them.",[138,314,316],{"id":315},"reasons-to-switch","Reasons to Switch",[271,318,319,330,339,350,356],{},[274,320,321,324,325,329],{},[277,322,323],{},"Your own domain without Enterprise."," Mailosaur's documentation lists receiving on a custom domain as Enterprise only. Every plan here takes a domain, and a ",[132,326,328],{"href":327},"\u002Fdocs\u002Fsetup\u002Fdomain\u002F","subdomain works"," while the apex keeps its production MX.",[274,331,332,335,336,338],{},[277,333,334],{},"Signup forms that block disposable domains."," ",[123,337,206],{}," is on the open-source disposable-email-domains blocklist. If your app checks addresses against it, a test address can be rejected before any email goes out. Your own domain isn't on the list.",[274,340,341,344,345,349],{},[277,342,343],{},"IMAP and POP3 on the cheapest plan."," Personal doesn't include them. Every account here is an ",[132,346,348],{"href":347},"\u002Fdocs\u002Fsetup\u002Faccount\u002F","IMAP and POP3 mailbox",", Lite included.",[274,351,352,355],{},[277,353,354],{},"Large runs."," Personal accepts 500 emails a day, so a nightly suite that sends 600 runs out partway through. Plans here don't count messages.",[274,357,358,361],{},[277,359,360],{},"A free plan that stays free."," Lite is $0 with no trial clock: 1 domain, 50 accounts, messages kept 7 days.",[138,363,365],{"id":364},"porting-a-test","Porting a Test",[116,367,368,369,372],{},"If the app already sends through your provider, change the test recipient from ",[123,370,371],{},"user@abc123.mailosaur.net"," to an address on your test domain. The MX record routes it here.",[116,374,375,376,379,380,382],{},"If the app submits mail to Mailosaur over SMTP, point it at ",[123,377,378],{},"send.smtp.dev",", port 587 with STARTTLS, and log in with the sending account's address and password. ",[123,381,378],{}," delivers only to accounts in your sandbox, so every recipient has to be an account you created or a plus alias of one, or any address on your domain once you have a catch-all.",[116,384,385,386,389,390,393],{},"The Mailosaur inbox ID in your tests becomes two IDs here: the account, and its mailbox whose ",[123,387,388],{},"path"," is ",[123,391,392],{},"INBOX",". Waiting for a message becomes a poll of that mailbox, newest first:",[395,396,401],"pre",{"className":397,"code":398,"language":399,"meta":400,"style":400},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl \"https:\u002F\u002Fapi.smtp.dev\u002Faccounts\u002F{accountId}\u002Fmailboxes\u002F{mailboxId}\u002Fmessages\" \\\n  -H \"X-API-KEY: $SMTP_DEV_API_KEY\"\n","bash","",[123,402,403,427],{"__ignoreMap":400},[404,405,408,412,416,420,423],"span",{"class":406,"line":407},"line",1,[404,409,411],{"class":410},"sBMFI","curl",[404,413,415],{"class":414},"sMK4o"," \"",[404,417,419],{"class":418},"sfazB","https:\u002F\u002Fapi.smtp.dev\u002Faccounts\u002F{accountId}\u002Fmailboxes\u002F{mailboxId}\u002Fmessages",[404,421,422],{"class":414},"\"",[404,424,426],{"class":425},"sTEyZ"," \\\n",[404,428,430,433,435,438,441],{"class":406,"line":429},2,[404,431,432],{"class":418},"  -H",[404,434,415],{"class":414},[404,436,437],{"class":418},"X-API-KEY: ",[404,439,440],{"class":425},"$SMTP_DEV_API_KEY",[404,442,443],{"class":414},"\"\n",[116,445,446,447,450,451,454,455,459,460,463,464,468,469,473],{},"Mailosaur's libraries wrap that wait for you. Here it's a few lines: ",[123,448,449],{},"findMessage"," with ",[123,452,453],{},"expect.poll"," in the ",[132,456,458],{"href":457},"\u002Fdocs\u002Fguides\u002Fe2e\u002F","Playwright guide",", the ",[123,461,462],{},"waitForEmail"," task in the ",[132,465,467],{"href":466},"\u002Fdocs\u002Fguides\u002Fcypress\u002F","Cypress guide",", or ",[132,470,472],{"href":471},"\u002Fdocs\u002Fapi\u002F#real-time-updates","SSE"," if you'd rather not poll.",[475,476,477],"note",{},[116,478,479],{},"Mailosaur's plans, limits, and add-on prices are from its pricing page. Custom domains and IMAP availability are from its documentation. The blocklist is disposable-email-domains on GitHub. All checked November 9, 2026.",[481,482,483],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":400,"searchDepth":429,"depth":429,"links":485},[486,487,488,489],{"id":140,"depth":429,"text":141},{"id":268,"depth":429,"text":269},{"id":315,"depth":429,"text":316},{"id":364,"depth":429,"text":365},"Mailosaur and smtp.dev side by side for email tests: plans, quotas, custom domains, and IMAP. When SMS keeps you on Mailosaur, and how to port your tests.","md",{},{"title":102},{"title":111,"description":490},"Hpih41vaXanSApi8D3BVfYaBB_uMW2Pqy27bf1mOiC0",[497,499],{"title":98,"path":99,"stem":100,"description":498,"children":-1},"Mailtrap's Email Sandbox and smtp.dev side by side on quotas, retention, and inbound addresses. When to stay on Mailtrap, and how to move a test suite.",{"title":106,"path":107,"stem":108,"description":500,"children":-1},"Mailinator's public inboxes are readable by anyone and deleted within hours. How private test inboxes on your own domain compare with Mailinator's paid plans.",1794185302341]