[{"data":1,"prerenderedAt":560},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Falternatives\u002Fmailtrap\u002F":109,"\u002Fdocs\u002Falternatives\u002Fmailtrap\u002F-surround":555},[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":549,"extension":550,"meta":551,"navigation":552,"path":99,"seo":553,"stem":100,"__hash__":554},"docs\u002F1.docs\u002F6.alternatives\u002F1.mailtrap.md","Mailtrap Alternative for Email Testing",{"type":113,"value":114,"toc":543},"minimark",[115,119,122,127,262,266,295,299,351,355,386,389,450,459,465,468,518,533,539],[116,117,118],"p",{},"Mailtrap sells three products on separate plans: Email Sandbox catches test mail, Email API sends production mail, and Email Marketing sends campaigns. smtp.dev replaces only the sandbox. It never delivers to real recipients, so production email stays with whoever sends it today, Mailtrap included.",[116,120,121],{},"The two sandboxes meter different things. Mailtrap counts test emails per month and keeps a fixed number of messages per sandbox. smtp.dev counts domains and accounts, and keeps every message for a set number of days.",[123,124,126],"h2",{"id":125},"at-a-glance","At a Glance",[128,129,130,145],"table",{},[131,132,133],"thead",{},[134,135,136,139,142],"tr",{},[137,138],"th",{},[137,140,141],{},"Mailtrap Email Sandbox",[137,143,144],{},"smtp.dev",[146,147,148,160,171,182,200,223,234,251],"tbody",{},[134,149,150,154,157],{},[151,152,153],"td",{},"Price per month",[151,155,156],{},"$0, $17, $42, $123, or $498. Billed yearly: $14, $34, $99, or $399",[151,158,159],{},"$0, $7, or $20",[134,161,162,165,168],{},[151,163,164],{},"Test emails",[151,166,167],{},"50 a month on Free, then 500, 5,000, 50,000, and unlimited on Enterprise",[151,169,170],{},"No monthly quota",[134,172,173,176,179],{},[151,174,175],{},"Messages kept",[151,177,178],{},"The newest 10 per sandbox on Free, up to 1,000 on Enterprise",[151,180,181],{},"Everything that arrives, for 7, 30, or 90 days by plan, within each account's storage quota",[134,183,184,187,194],{},[151,185,186],{},"SMTP",[151,188,189,193],{},[190,191,192],"code",{},"sandbox.smtp.mailtrap.io"," with the sandbox's credentials",[151,195,196,199],{},[190,197,198],{},"send.smtp.dev"," with an account's address and password",[134,201,202,205,216],{},[151,203,204],{},"Receiving from outside",[151,206,207,208,211,212,215],{},"From Basic: one address per sandbox at ",[190,209,210],{},"inbox.mailtrap.io",", with ",[190,213,214],{},"+"," tags",[151,217,218,219,222],{},"Addresses on your domain, once its MX points at ",[190,220,221],{},"mx.smtp.dev",". Every plan",[134,224,225,228,231],{},[151,226,227],{},"Reading mail",[151,229,230],{},"Web UI, REST API with official SDKs, POP3",[151,232,233],{},"Web UI, REST API, SSE, IMAP, POP3",[134,235,236,239,242],{},[151,237,238],{},"Checks on a message",[151,240,241],{},"HTML check, SpamAssassin score, bounce emulation. Client previews are an add-on",[151,243,244,245,250],{},"SPF, DKIM, and DMARC results, and an ",[246,247,249],"a",{"href":248},"\u002Fdocs\u002Ffeatures\u002Fmessage\u002F#audit","audit"," of HTML, links, images, and content",[134,252,253,256,259],{},[151,254,255],{},"Users",[151,257,258],{},"1 on Free, 3 on Basic, up to unlimited on Enterprise. SSO on Enterprise",[151,260,261],{},"Single user",[123,263,265],{"id":264},"stay-on-mailtrap-when","Stay on Mailtrap When",[267,268,269,277,283,289],"ul",{},[270,271,272,276],"li",{},[273,274,275],"strong",{},"Production mail goes through Mailtrap's Email API",", and you want test mail in the same dashboard.",[270,278,279,282],{},[273,280,281],{},"You rely on the HTML check, the spam score, bounce emulation, or client previews."," The audit here checks sender configuration, HTML structure, links, and images. It doesn't render the message in Gmail or Outlook.",[270,284,285,288],{},[273,286,287],{},"Several people need their own login",", or you need SSO.",[270,290,291,294],{},[273,292,293],{},"Your tests use Mailtrap's SDKs and pass."," Porting tests that already work adds cost and no coverage.",[123,296,298],{"id":297},"reasons-to-switch","Reasons to Switch",[267,300,301,307,328,334,340],{},[270,302,303,306],{},[273,304,305],{},"Receiving on the free plan."," Mailtrap's Free sandbox has no inbound address. Lite receives on your domain as soon as its MX record resolves, so an OTP from your auth provider or a receipt from your payment provider lands in a real account.",[270,308,309,312,313,316,317,320,321,323,324,327],{},[273,310,311],{},"Your own domain."," Test users can be ",[190,314,315],{},"jane@test.example.com"," and ",[190,318,319],{},"sam@test.example.com",", each with its own inbox, instead of ",[190,322,214],{}," tags on one sandbox address. ",[190,325,326],{},"example.com"," keeps its production MX.",[270,329,330,333],{},[273,331,332],{},"No monthly count."," Basic's 500 test emails last 25 runs of a suite that sends 20. Plans here don't count messages.",[270,335,336,339],{},[273,337,338],{},"Retention by date."," A Free sandbox keeps the newest 10 messages and Basic the newest 50, deleting older ones as new mail arrives. Here, last night's failed run is still there in the morning.",[270,341,342,345,346,350],{},[273,343,344],{},"IMAP."," Every account is an IMAP and POP3 mailbox on every plan, so a test message opens in ",[246,347,349],{"href":348},"\u002Fdocs\u002Fguides\u002Femail-clients\u002F","Thunderbird or Apple Mail",".",[123,352,354],{"id":353},"moving-a-test-suite","Moving a Test Suite",[116,356,357,358,361,362,364,365,369,370,372,373,376,377,380,381,385],{},"Add a test domain such as ",[190,359,360],{},"test.example.com"," and point its MX record at ",[190,363,221],{}," (",[246,366,368],{"href":367},"\u002Fdocs\u002Fsetup\u002Fdomain\u002F","how","). Create an account for each address your tests use. Tests that relied on ",[190,371,214],{}," tags keep them: ",[190,374,375],{},"qa+run42@test.example.com"," delivers to ",[190,378,379],{},"qa@test.example.com"," on every plan. On Pro and Max, a ",[246,382,384],{"href":383},"\u002Fdocs\u002Fguides\u002Fcatch-all\u002F","catch-all"," accepts any address.",[116,387,388],{},"Then change the app's SMTP settings:",[128,390,391,402],{},[131,392,393],{},[134,394,395,398,400],{},[137,396,397],{},"Setting",[137,399,141],{},[137,401,144],{},[146,403,404,417,428,439],{},[134,405,406,409,413],{},[151,407,408],{},"Host",[151,410,411],{},[190,412,192],{},[151,414,415],{},[190,416,198],{},[134,418,419,422,425],{},[151,420,421],{},"Port",[151,423,424],{},"25, 465, 587, or 2525",[151,426,427],{},"587, STARTTLS",[134,429,430,433,436],{},[151,431,432],{},"Username",[151,434,435],{},"The sandbox's SMTP username",[151,437,438],{},"The sending account's address",[134,440,441,444,447],{},[151,442,443],{},"Password",[151,445,446],{},"The sandbox's SMTP password",[151,448,449],{},"That account's password",[116,451,452,454,455,458],{},[190,453,198],{}," delivers only to accounts in your sandbox and refuses any other recipient. Fixtures that mail ",[190,456,457],{},"user@example.com"," fail until they use addresses on your test domain.",[116,460,461,462,464],{},"If the app sends through a real provider to an ",[190,463,210],{}," address, leave its SMTP settings alone and change the recipient instead.",[116,466,467],{},"Tests that fetch a message from a Mailtrap sandbox fetch it from the account's INBOX, newest first:",[469,470,475],"pre",{"className":471,"code":472,"language":473,"meta":474,"style":474},"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","",[190,476,477,501],{"__ignoreMap":474},[478,479,482,486,490,494,497],"span",{"class":480,"line":481},"line",1,[478,483,485],{"class":484},"sBMFI","curl",[478,487,489],{"class":488},"sMK4o"," \"",[478,491,493],{"class":492},"sfazB","https:\u002F\u002Fapi.smtp.dev\u002Faccounts\u002F{accountId}\u002Fmailboxes\u002F{mailboxId}\u002Fmessages",[478,495,496],{"class":488},"\"",[478,498,500],{"class":499},"sTEyZ"," \\\n",[478,502,504,507,509,512,515],{"class":480,"line":503},2,[478,505,506],{"class":492},"  -H",[478,508,489],{"class":488},[478,510,511],{"class":492},"X-API-KEY: ",[478,513,514],{"class":499},"$SMTP_DEV_API_KEY",[478,516,517],{"class":488},"\"\n",[116,519,520,521,525,526,316,529,532],{},"The ",[246,522,524],{"href":523},"\u002Fdocs\u002Fguides\u002Femail-testing-api\u002F","API quickstart"," has a wait-and-assert helper, and the ",[246,527,69],{"href":528},"\u002Fdocs\u002Fguides\u002Fe2e\u002F",[246,530,73],{"href":531},"\u002Fdocs\u002Fguides\u002Fcypress\u002F"," guides use it in browser tests.",[534,535,536],"note",{},[116,537,538],{},"Mailtrap's prices and limits are from its pricing page, and its features from its Email Sandbox documentation, checked November 9, 2026. Email API prices aren't included.",[540,541,542],"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":474,"searchDepth":503,"depth":503,"links":544},[545,546,547,548],{"id":125,"depth":503,"text":126},{"id":264,"depth":503,"text":265},{"id":297,"depth":503,"text":298},{"id":353,"depth":503,"text":354},"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.","md",{},{"title":98},{"title":111,"description":549},"NkowG1v8XRp8quPF6UUzN6JhCp7PuuLM9-eUSvYiwIU",[556,558],{"title":89,"path":90,"stem":91,"description":557,"children":-1},"Why a 25 MB limit fits about 18 MB of attachments, the limits Gmail, Microsoft 365, SES, SendGrid, Mailgun, and Postmark publish, and how to test the boundary.",{"title":102,"path":103,"stem":104,"description":559,"children":-1},"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.",1794185302274]