[{"data":1,"prerenderedAt":1121},["Reactive",2],{"navigation":3,"/features/routing-incoming-email":118,"/features/routing-incoming-email-surround":1117},[4,14,43,83,99],{"title":5,"_path":6,"children":7},"Welcome","/welcome",[8,11],{"title":9,"_path":10},"Feature List","/welcome/feature-list",{"title":12,"_path":13},"FAQs","/welcome/faqs",{"title":15,"_path":16,"children":17},"Getting Started","/getting-started",[18,19,22,25,28,31,34,37,40],{"title":15,"_path":16},{"title":20,"_path":21},"Pre-requisites","/getting-started/prerequisites",{"title":23,"_path":24},"Installation","/getting-started/installation",{"title":26,"_path":27},"Upgrading","/getting-started/upgrading",{"title":29,"_path":30},"Configuration","/getting-started/configuration",{"title":32,"_path":33},"DNS configuration","/getting-started/dns-configuration",{"title":35,"_path":36},"Upgrading to v3","/getting-started/upgrade-to-v3",{"title":38,"_path":39},"Upgrading to v2","/getting-started/upgrade-to-v2",{"title":41,"_path":42},"The postal command","/getting-started/postal-command",{"title":44,"_path":45,"children":46},"Features","/features",[47,50,53,56,59,62,65,68,71,74,77,80],{"title":48,"_path":49},"Click & Open Tracking","/features/click-and-open-tracking",{"title":51,"_path":52},"Health & Metrics","/features/health-metrics",{"title":54,"_path":55},"IP Pools","/features/ip-pools",{"title":57,"_path":58},"Logging","/features/logging",{"title":60,"_path":61},"Mail Server Settings","/features/mail-server-settings",{"title":63,"_path":64},"OpenID Connect","/features/oidc",{"title":66,"_path":67},"Routing Incoming E-Mail","/features/routing-incoming-email",{"title":69,"_path":70},"Sending Domains","/features/sending-domains",{"title":72,"_path":73},"SMTP Authentication","/features/smtp-authentication",{"title":75,"_path":76},"SMTP TLS","/features/smtp-tls",{"title":78,"_path":79},"Spam & Virus Checking","/features/spam-and-virus-checking",{"title":81,"_path":82},"Users & Permissions","/features/users-and-permissions",{"title":84,"_path":85,"children":86},"Developer","/developer",[87,90,93,96],{"title":88,"_path":89},"Using the API","/developer/api",{"title":91,"_path":92},"Client Libraries","/developer/client-libraries",{"title":94,"_path":95},"Receiving e-mail by HTTP","/developer/http-payloads",{"title":97,"_path":98},"Webhooks","/developer/webhooks",{"title":100,"_path":101,"children":102},"Other Notes","/other",[103,106,109,112,115],{"title":104,"_path":105},"Auto-Responders & Bounces","/other/auto-responders-and-bounces",{"title":107,"_path":108},"Our container image","/other/containers",{"title":110,"_path":111},"Debugging","/other/debugging",{"title":113,"_path":114},"Wildcards & Address Tags","/other/wildcards-and-address-tags",{"title":116,"_path":117},"Workers & Background Tasks","/other/workers-and-background-tasks",{"_path":67,"_dir":119,"_draft":120,"_partial":120,"_locale":121,"title":66,"description":122,"category":44,"body":123,"_type":1112,"_id":1113,"_source":1114,"_file":1115,"_extension":1116},"features",false,"","Routes, endpoints and what happens to mail that arrives at your Postal server.",{"type":124,"children":125,"toc":1095},"root",[126,149,156,161,205,245,251,263,441,448,459,461,646,657,662,674,680,685,747,753,770,776,795,801,806,808,915,949,1009,1015,1035,1041,1076,1082],{"type":127,"tag":128,"props":129,"children":130},"element","p",{},[131,134,140,142,147],{"type":132,"value":133},"text","As well as sending mail, each Postal mail server can receive mail for the domains you have added to it. Incoming mail is matched to a ",{"type":127,"tag":135,"props":136,"children":137},"strong",{},[138],{"type":132,"value":139},"route",{"type":132,"value":141},", and each route decides what should happen to the message - most commonly delivering it to an ",{"type":127,"tag":135,"props":143,"children":144},{},[145],{"type":132,"value":146},"endpoint",{"type":132,"value":148}," such as your application's HTTP URL, another SMTP server or an ordinary e-mail address.",{"type":127,"tag":150,"props":151,"children":153},"h2",{"id":152},"getting-mail-to-postal",[154],{"type":132,"value":155},"Getting mail to Postal",{"type":127,"tag":128,"props":157,"children":158},{},[159],{"type":132,"value":160},"There are two ways to get incoming mail into Postal.",{"type":127,"tag":128,"props":162,"children":163},{},[164,169,171,178,180,186,188,194,196,203],{"type":127,"tag":135,"props":165,"children":166},{},[167],{"type":132,"value":168},"Point your MX records at Postal.",{"type":132,"value":170}," Add the MX records from your ",{"type":127,"tag":172,"props":173,"children":175},"code",{"className":174},[],[176],{"type":132,"value":177},"dns.mx_records",{"type":132,"value":179}," configuration (for example ",{"type":127,"tag":172,"props":181,"children":183},{"className":182},[],[184],{"type":132,"value":185},"mx1.postal.example.com",{"type":132,"value":187}," and ",{"type":127,"tag":172,"props":189,"children":191},{"className":190},[],[192],{"type":132,"value":193},"mx2.postal.example.com",{"type":132,"value":195},", both at priority 10) to the domain. Postal's ",{"type":127,"tag":197,"props":198,"children":200},"a",{"href":199},"/features/sending-domains#dns-checks",[201],{"type":132,"value":202},"domain DNS checks",{"type":132,"value":204}," will show a green tick once they are visible. All mail for addresses on that domain will then arrive at your Postal SMTP server.",{"type":127,"tag":128,"props":206,"children":207},{},[208,213,215,221,223,229,231,236,238,243],{"type":127,"tag":135,"props":209,"children":210},{},[211],{"type":132,"value":212},"Forward mail from an existing mail server.",{"type":132,"value":214}," If the domain already has a mail server, you don't need to change any DNS. Every route has a unique forwarding address of the form ",{"type":127,"tag":172,"props":216,"children":218},{"className":217},[],[219],{"type":132,"value":220},"{token}@{route domain}",{"type":132,"value":222}," (e.g. ",{"type":127,"tag":172,"props":224,"children":226},{"className":225},[],[227],{"type":132,"value":228},"a1b2c3d4@routes.postal.example.com",{"type":132,"value":230},"), shown in the ",{"type":127,"tag":135,"props":232,"children":233},{},[234],{"type":132,"value":235},"Address",{"type":132,"value":237}," field when you edit the route. Forward mail from your existing server to this address and it will be treated exactly as if it had been sent to the route's real address. The route domain must have an MX record pointing at Postal - see ",{"type":127,"tag":197,"props":239,"children":241},{"href":240},"/getting-started/dns-configuration#route-domain",[242],{"type":132,"value":32},{"type":132,"value":244},".",{"type":127,"tag":150,"props":246,"children":248},{"id":247},"routes",[249],{"type":132,"value":250},"Routes",{"type":127,"tag":128,"props":252,"children":253},{},[254,256,261],{"type":132,"value":255},"Routes are managed under ",{"type":127,"tag":135,"props":257,"children":258},{},[259],{"type":132,"value":260},"Routing → Routes",{"type":132,"value":262}," in the server menu. A route consists of:",{"type":127,"tag":264,"props":265,"children":266},"ul",{},[267,381,391,401],{"type":127,"tag":268,"props":269,"children":270},"li",{},[271,276,278,284,286,292,294,352,356,358,364,366,372,374,379],{"type":127,"tag":135,"props":272,"children":273},{},[274],{"type":132,"value":275},"Name and domain",{"type":132,"value":277}," - the address to route, e.g. ",{"type":127,"tag":172,"props":279,"children":281},{"className":280},[],[282],{"type":132,"value":283},"support",{"type":132,"value":285}," @ ",{"type":127,"tag":172,"props":287,"children":289},{"className":288},[],[290],{"type":132,"value":291},"yourdomain.com",{"type":132,"value":293},". The domain must be a verified domain belonging to the server or its organization. The name may be:",{"type":127,"tag":264,"props":295,"children":296},{},[297,316,333],{"type":127,"tag":268,"props":298,"children":299},{},[300,302,308,309,314],{"type":132,"value":301},"an ordinary local part (lower case letters, digits, ",{"type":127,"tag":172,"props":303,"children":305},{"className":304},[],[306],{"type":132,"value":307},"-",{"type":132,"value":187},{"type":127,"tag":172,"props":310,"children":312},{"className":311},[],[313],{"type":132,"value":244},{"type":132,"value":315},");",{"type":127,"tag":268,"props":317,"children":318},{},[319,325,327,332],{"type":127,"tag":172,"props":320,"children":322},{"className":321},[],[323],{"type":132,"value":324},"*",{"type":132,"value":326}," to receive mail for every address on the domain (",{"type":127,"tag":197,"props":328,"children":329},{"href":114},[330],{"type":132,"value":331},"wildcards",{"type":132,"value":315},{"type":127,"tag":268,"props":334,"children":335},{},[336,342,344,350],{"type":127,"tag":172,"props":337,"children":339},{"className":338},[],[340],{"type":132,"value":341},"__returnpath__",{"type":132,"value":343}," with no domain, to receive mail sent to the server's return path address (",{"type":127,"tag":197,"props":345,"children":347},{"href":346},"/other/auto-responders-and-bounces#return-path-routes",[348],{"type":132,"value":349},"return path routes",{"type":132,"value":351},"). Only one of these may exist per server and it must deliver to an HTTP endpoint.",{"type":127,"tag":353,"props":354,"children":355},"br",{},[],{"type":132,"value":357},"Mail to ",{"type":127,"tag":172,"props":359,"children":361},{"className":360},[],[362],{"type":132,"value":363},"name+anything@domain",{"type":132,"value":365}," also matches the route for ",{"type":127,"tag":172,"props":367,"children":369},{"className":368},[],[370],{"type":132,"value":371},"name@domain",{"type":132,"value":373}," (",{"type":127,"tag":197,"props":375,"children":376},{"href":114},[377],{"type":132,"value":378},"address tags",{"type":132,"value":380},"). A given name/domain combination can only be routed once across your whole installation.",{"type":127,"tag":268,"props":382,"children":383},{},[384,389],{"type":127,"tag":135,"props":385,"children":386},{},[387],{"type":132,"value":388},"Endpoint",{"type":132,"value":390}," - either one of the server's endpoints, or one of the special modes below.",{"type":127,"tag":268,"props":392,"children":393},{},[394,399],{"type":127,"tag":135,"props":395,"children":396},{},[397],{"type":132,"value":398},"Additional endpoints",{"type":132,"value":400}," - see below.",{"type":127,"tag":268,"props":402,"children":403},{},[404,409,411,417,419,425,427,433,435,440],{"type":127,"tag":135,"props":405,"children":406},{},[407],{"type":132,"value":408},"Spam mode",{"type":132,"value":410}," - ",{"type":127,"tag":172,"props":412,"children":414},{"className":413},[],[415],{"type":132,"value":416},"Mark",{"type":132,"value":418},", ",{"type":127,"tag":172,"props":420,"children":422},{"className":421},[],[423],{"type":132,"value":424},"Quarantine",{"type":132,"value":426}," or ",{"type":127,"tag":172,"props":428,"children":430},{"className":429},[],[431],{"type":132,"value":432},"Fail",{"type":132,"value":434},". See ",{"type":127,"tag":197,"props":436,"children":438},{"href":437},"/features/spam-and-virus-checking#classifying-spam",[439],{"type":132,"value":78},{"type":132,"value":244},{"type":127,"tag":442,"props":443,"children":445},"h3",{"id":444},"route-modes",[446],{"type":132,"value":447},"Route modes",{"type":127,"tag":128,"props":449,"children":450},{},[451,453,457],{"type":132,"value":452},"The ",{"type":127,"tag":135,"props":454,"children":455},{},[456],{"type":132,"value":388},{"type":132,"value":458}," dropdown also offers four special modes in place of a real endpoint:",{"type":132,"value":460},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":127,"tag":462,"props":463,"children":464},"table",{},[465,497],{"type":127,"tag":466,"props":467,"children":468},"thead",{},[469],{"type":127,"tag":470,"props":471,"children":472},"tr",{},[473,479,492],{"type":127,"tag":474,"props":475,"children":476},"th",{},[477],{"type":132,"value":478},"Mode",{"type":127,"tag":474,"props":480,"children":481},{},[482,484,490],{"type":132,"value":483},"At ",{"type":127,"tag":172,"props":485,"children":487},{"className":486},[],[488],{"type":132,"value":489},"RCPT TO",{"type":132,"value":491}," time",{"type":127,"tag":474,"props":493,"children":494},{},[495],{"type":132,"value":496},"When processed",{"type":127,"tag":498,"props":499,"children":500},"tbody",{},[501,524,551,592,619],{"type":127,"tag":470,"props":502,"children":503},{},[504,514,519],{"type":127,"tag":505,"props":506,"children":507},"td",{},[508,512],{"type":127,"tag":135,"props":509,"children":510},{},[511],{"type":132,"value":388},{"type":132,"value":513}," (an HTTP, SMTP or address endpoint)",{"type":127,"tag":505,"props":515,"children":516},{},[517],{"type":132,"value":518},"Accepted",{"type":127,"tag":505,"props":520,"children":521},{},[522],{"type":132,"value":523},"Delivered to the endpoint.",{"type":127,"tag":470,"props":525,"children":526},{},[527,535,539],{"type":127,"tag":505,"props":528,"children":529},{},[530],{"type":127,"tag":135,"props":531,"children":532},{},[533],{"type":132,"value":534},"Accept",{"type":127,"tag":505,"props":536,"children":537},{},[538],{"type":132,"value":518},{"type":127,"tag":505,"props":540,"children":541},{},[542,544,549],{"type":132,"value":543},"Recorded as ",{"type":127,"tag":135,"props":545,"children":546},{},[547],{"type":132,"value":548},"Processed",{"type":132,"value":550}," with no delivery. The message is stored and visible in the web interface.",{"type":127,"tag":470,"props":552,"children":553},{},[554,562,566],{"type":127,"tag":505,"props":555,"children":556},{},[557],{"type":127,"tag":135,"props":558,"children":559},{},[560],{"type":132,"value":561},"Hold",{"type":127,"tag":505,"props":563,"children":564},{},[565],{"type":132,"value":518},{"type":127,"tag":505,"props":567,"children":568},{},[569,571,576,578,582,584,590],{"type":132,"value":570},"Placed in the held queue (status ",{"type":127,"tag":135,"props":572,"children":573},{},[574],{"type":132,"value":575},"Held",{"type":132,"value":577},"). You can release it from the web interface, after which it is marked ",{"type":127,"tag":135,"props":579,"children":580},{},[581],{"type":132,"value":548},{"type":132,"value":583},". Held messages expire after ",{"type":127,"tag":172,"props":585,"children":587},{"className":586},[],[588],{"type":132,"value":589},"postal.default_maximum_hold_expiry_days",{"type":132,"value":591}," (default 7).",{"type":127,"tag":470,"props":593,"children":594},{},[595,603,607],{"type":127,"tag":505,"props":596,"children":597},{},[598],{"type":127,"tag":135,"props":599,"children":600},{},[601],{"type":132,"value":602},"Bounce",{"type":127,"tag":505,"props":604,"children":605},{},[606],{"type":132,"value":518},{"type":127,"tag":505,"props":608,"children":609},{},[610,612,617],{"type":132,"value":611},"Marked as ",{"type":127,"tag":135,"props":613,"children":614},{},[615],{"type":132,"value":616},"HardFail",{"type":132,"value":618}," and a bounce is sent back to the sender explaining the message was not delivered.",{"type":127,"tag":470,"props":620,"children":621},{},[622,630,641],{"type":127,"tag":505,"props":623,"children":624},{},[625],{"type":127,"tag":135,"props":626,"children":627},{},[628],{"type":132,"value":629},"Reject",{"type":127,"tag":505,"props":631,"children":632},{},[633,635],{"type":132,"value":634},"Rejected with ",{"type":127,"tag":172,"props":636,"children":638},{"className":637},[],[639],{"type":132,"value":640},"550 Route does not accept incoming messages",{"type":127,"tag":505,"props":642,"children":643},{},[644],{"type":132,"value":645},"Never stored.",{"type":127,"tag":128,"props":647,"children":648},{},[649,651,655],{"type":132,"value":650},"A message is only rejected at SMTP time by the ",{"type":127,"tag":135,"props":652,"children":653},{},[654],{"type":132,"value":629},{"type":132,"value":656}," mode (and by a suspended server). Everything else is accepted, queued, and processed by a worker.",{"type":127,"tag":442,"props":658,"children":660},{"id":659},"additional-endpoints",[661],{"type":132,"value":398},{"type":127,"tag":128,"props":663,"children":664},{},[665,667,672],{"type":132,"value":666},"A route with a real endpoint can also deliver the same message to any number of additional endpoints. A separate copy of the message (with its own ID and delivery history) is created for each endpoint. Additional endpoints on a wildcard (",{"type":127,"tag":172,"props":668,"children":670},{"className":669},[],[671],{"type":132,"value":324},{"type":132,"value":673},") route must be HTTP endpoints. Additional endpoints cannot be used with the Accept, Hold, Bounce or Reject modes.",{"type":127,"tag":442,"props":675,"children":677},{"id":676},"processing-order",[678],{"type":132,"value":679},"Processing order",{"type":127,"tag":128,"props":681,"children":682},{},[683],{"type":132,"value":684},"When a worker processes an incoming message it performs the following steps in order:",{"type":127,"tag":686,"props":687,"children":688},"ol",{},[689,701,713,725,730,735],{"type":127,"tag":268,"props":690,"children":691},{},[692,694,699],{"type":132,"value":693},"If the message is a bounce for something Postal sent, link it to the original message and stop (",{"type":127,"tag":197,"props":695,"children":696},{"href":105},[697],{"type":132,"value":698},"bounces",{"type":132,"value":700},").",{"type":127,"tag":268,"props":702,"children":703},{},[704,706,711],{"type":132,"value":705},"Run spam and virus inspection if enabled. If the score is at or above the server's ",{"type":127,"tag":135,"props":707,"children":708},{},[709],{"type":132,"value":710},"spam failure threshold",{"type":132,"value":712},", hard fail.",{"type":127,"tag":268,"props":714,"children":715},{},[716,718,723],{"type":132,"value":717},"If the server is in ",{"type":127,"tag":135,"props":719,"children":720},{},[721],{"type":132,"value":722},"Development",{"type":132,"value":724}," mode, hold the message.",{"type":127,"tag":268,"props":726,"children":727},{},[728],{"type":132,"value":729},"Apply the route's spam mode if the message was marked as spam (Quarantine holds, Fail hard fails).",{"type":127,"tag":268,"props":731,"children":732},{},[733],{"type":132,"value":734},"Apply the route mode (Accept, Hold, Bounce or deliver to the endpoint).",{"type":127,"tag":268,"props":736,"children":737},{},[738,740,746],{"type":132,"value":739},"On a hard failure from an endpoint, send a bounce to the sender (unless the endpoint returned ",{"type":127,"tag":172,"props":741,"children":743},{"className":742},[],[744],{"type":132,"value":745},"429",{"type":132,"value":700},{"type":127,"tag":150,"props":748,"children":750},{"id":749},"endpoints",[751],{"type":132,"value":752},"Endpoints",{"type":127,"tag":128,"props":754,"children":755},{},[756,758,763,765,769],{"type":132,"value":757},"Endpoints are created under ",{"type":127,"tag":135,"props":759,"children":760},{},[761],{"type":132,"value":762},"Routing",{"type":132,"value":764}," in the server menu and can be shared by any number of routes on that server. Deleting an endpoint changes any routes using it to ",{"type":127,"tag":135,"props":766,"children":767},{},[768],{"type":132,"value":629},{"type":132,"value":244},{"type":127,"tag":442,"props":771,"children":773},{"id":772},"http-endpoints",[774],{"type":132,"value":775},"HTTP endpoints",{"type":127,"tag":128,"props":777,"children":778},{},[779,781,787,789,793],{"type":132,"value":780},"Deliver the message to your application as an HTTP ",{"type":127,"tag":172,"props":782,"children":784},{"className":783},[],[785],{"type":132,"value":786},"POST",{"type":132,"value":788},". All options and the payload formats are described on the ",{"type":127,"tag":197,"props":790,"children":791},{"href":95},[792],{"type":132,"value":94},{"type":132,"value":794}," page.",{"type":127,"tag":442,"props":796,"children":798},{"id":797},"smtp-endpoints",[799],{"type":132,"value":800},"SMTP endpoints",{"type":127,"tag":128,"props":802,"children":803},{},[804],{"type":132,"value":805},"Forward the message to another SMTP server.",{"type":132,"value":807},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":127,"tag":462,"props":809,"children":810},{},[811,827],{"type":127,"tag":466,"props":812,"children":813},{},[814],{"type":127,"tag":470,"props":815,"children":816},{},[817,822],{"type":127,"tag":474,"props":818,"children":819},{},[820],{"type":132,"value":821},"Field",{"type":127,"tag":474,"props":823,"children":824},{},[825],{"type":132,"value":826},"Description",{"type":127,"tag":498,"props":828,"children":829},{},[830,846,869],{"type":127,"tag":470,"props":831,"children":832},{},[833,841],{"type":127,"tag":505,"props":834,"children":835},{},[836],{"type":127,"tag":135,"props":837,"children":838},{},[839],{"type":132,"value":840},"Hostname",{"type":127,"tag":505,"props":842,"children":843},{},[844],{"type":132,"value":845},"The server to connect to. Postal connects directly to this host (no MX lookup is performed).",{"type":127,"tag":470,"props":847,"children":848},{},[849,857],{"type":127,"tag":505,"props":850,"children":851},{},[852],{"type":127,"tag":135,"props":853,"children":854},{},[855],{"type":132,"value":856},"Port",{"type":127,"tag":505,"props":858,"children":859},{},[860,862,868],{"type":132,"value":861},"Defaults to ",{"type":127,"tag":172,"props":863,"children":865},{"className":864},[],[866],{"type":132,"value":867},"25",{"type":132,"value":244},{"type":127,"tag":470,"props":870,"children":871},{},[872,880],{"type":127,"tag":505,"props":873,"children":874},{},[875],{"type":127,"tag":135,"props":876,"children":877},{},[878],{"type":132,"value":879},"SSL mode",{"type":127,"tag":505,"props":881,"children":882},{},[883,889,891,897,899,905,907,913],{"type":127,"tag":172,"props":884,"children":886},{"className":885},[],[887],{"type":132,"value":888},"None",{"type":132,"value":890}," - never use TLS. ",{"type":127,"tag":172,"props":892,"children":894},{"className":893},[],[895],{"type":132,"value":896},"Auto",{"type":132,"value":898}," - use STARTTLS if the server offers it, without verifying the certificate, falling back to plain text if the TLS handshake fails. ",{"type":127,"tag":172,"props":900,"children":902},{"className":901},[],[903],{"type":132,"value":904},"TLS",{"type":132,"value":906}," - connect with implicit TLS (e.g. port 465) and verify the certificate. ",{"type":127,"tag":172,"props":908,"children":910},{"className":909},[],[911],{"type":132,"value":912},"STARTTLS",{"type":132,"value":914}," - see the note below.",{"type":127,"tag":916,"props":917,"children":920},"callout",{"color":918,"icon":919},"amber","i-heroicons-exclamation-triangle",[921],{"type":127,"tag":128,"props":922,"children":923},{},[924,926,930,932,936,938,942,943,947],{"type":132,"value":925},"In Postal 3.3.7 the ",{"type":127,"tag":172,"props":927,"children":928},{},[929],{"type":132,"value":912},{"type":132,"value":931}," option on SMTP endpoints does not work as intended due to a typo in the source code, so it currently behaves the same as ",{"type":127,"tag":172,"props":933,"children":934},{},[935],{"type":132,"value":888},{"type":132,"value":937},". Use ",{"type":127,"tag":172,"props":939,"children":940},{},[941],{"type":132,"value":896},{"type":132,"value":426},{"type":127,"tag":172,"props":944,"children":945},{},[946],{"type":132,"value":904},{"type":132,"value":948}," until this is fixed.",{"type":127,"tag":128,"props":950,"children":951},{},[952,954,960,962,968,970,976,978,984,985,991,993,999,1001,1007],{"type":132,"value":953},"The message is forwarded with an envelope sender of ",{"type":127,"tag":172,"props":955,"children":957},{"className":956},[],[958],{"type":132,"value":959},"{server token}@{return path domain}",{"type":132,"value":961}," so that bounces come back to Postal, and a ",{"type":127,"tag":172,"props":963,"children":965},{"className":964},[],[966],{"type":132,"value":967},"Resent-Sender",{"type":132,"value":969}," header is added if ",{"type":127,"tag":172,"props":971,"children":973},{"className":972},[],[974],{"type":132,"value":975},"postal.use_resent_sender_header",{"type":132,"value":977}," is enabled. Connection timeouts are controlled by ",{"type":127,"tag":172,"props":979,"children":981},{"className":980},[],[982],{"type":132,"value":983},"smtp_client.open_timeout",{"type":132,"value":187},{"type":127,"tag":172,"props":986,"children":988},{"className":987},[],[989],{"type":132,"value":990},"smtp_client.read_timeout",{"type":132,"value":992}," (default 30 seconds each). Temporary (",{"type":127,"tag":172,"props":994,"children":996},{"className":995},[],[997],{"type":132,"value":998},"4xx",{"type":132,"value":1000},") responses are retried; permanent (",{"type":127,"tag":172,"props":1002,"children":1004},{"className":1003},[],[1005],{"type":132,"value":1006},"5xx",{"type":132,"value":1008},") responses hard fail and cause a bounce.",{"type":127,"tag":442,"props":1010,"children":1012},{"id":1011},"address-endpoints",[1013],{"type":132,"value":1014},"Address endpoints",{"type":127,"tag":128,"props":1016,"children":1017},{},[1018,1020,1026,1028,1033],{"type":132,"value":1019},"Forward the message to an ordinary e-mail address. Postal looks up the MX records for the address's domain (or uses your configured ",{"type":127,"tag":172,"props":1021,"children":1023},{"className":1022},[],[1024],{"type":132,"value":1025},"postal.smtp_relays",{"type":132,"value":1027}," if any) and delivers it as it would an outgoing message, with the ",{"type":127,"tag":172,"props":1029,"children":1031},{"className":1030},[],[1032],{"type":132,"value":489},{"type":132,"value":1034}," replaced by the target address. Each address may only be added once per server.",{"type":127,"tag":150,"props":1036,"children":1038},{"id":1037},"delivery-retries-and-bounces",[1039],{"type":132,"value":1040},"Delivery, retries and bounces",{"type":127,"tag":128,"props":1042,"children":1043},{},[1044,1046,1052,1054,1060,1062,1067,1069,1075],{"type":132,"value":1045},"Deliveries to endpoints follow the same rules as outgoing mail: temporary failures are retried with an exponential back-off (",{"type":127,"tag":172,"props":1047,"children":1049},{"className":1048},[],[1050],{"type":132,"value":1051},"5 minutes × 1.3ⁿ",{"type":132,"value":1053},") up to ",{"type":127,"tag":172,"props":1055,"children":1057},{"className":1056},[],[1058],{"type":132,"value":1059},"postal.default_maximum_delivery_attempts",{"type":132,"value":1061}," times (default 18, roughly 31 hours), after which the message is hard failed. A hard failure of an incoming message causes a bounce to be sent to the original sender. Each attempt is recorded on the message's ",{"type":127,"tag":135,"props":1063,"children":1064},{},[1065],{"type":132,"value":1066},"Activity",{"type":132,"value":1068}," tab and triggers the corresponding ",{"type":127,"tag":197,"props":1070,"children":1072},{"href":1071},"/developer/webhooks#message-status-events",[1073],{"type":132,"value":1074},"webhook",{"type":132,"value":244},{"type":127,"tag":150,"props":1077,"children":1079},{"id":1078},"limits",[1080],{"type":132,"value":1081},"Limits",{"type":127,"tag":128,"props":1083,"children":1084},{},[1085,1087,1093],{"type":132,"value":1086},"The SMTP server accepts messages up to ",{"type":127,"tag":172,"props":1088,"children":1090},{"className":1089},[],[1091],{"type":132,"value":1092},"smtp_server.max_message_size",{"type":132,"value":1094}," (default 14 MB). Incoming volume is counted in the server's statistics but is not subject to the server's send limit.",{"title":121,"searchDepth":1096,"depth":1096,"links":1097},2,[1098,1099,1105,1110,1111],{"id":152,"depth":1096,"text":155},{"id":247,"depth":1096,"text":250,"children":1100},[1101,1103,1104],{"id":444,"depth":1102,"text":447},3,{"id":659,"depth":1102,"text":398},{"id":676,"depth":1102,"text":679},{"id":749,"depth":1096,"text":752,"children":1106},[1107,1108,1109],{"id":772,"depth":1102,"text":775},{"id":797,"depth":1102,"text":800},{"id":1011,"depth":1102,"text":1014},{"id":1037,"depth":1096,"text":1040},{"id":1078,"depth":1096,"text":1081},"markdown","content:3.features:routing-incoming-email.md","content","3.features/routing-incoming-email.md","md",[1118,1119],{"_path":64,"title":63,"description":121},{"_path":70,"title":69,"description":1120},"Adding and verifying the domains you send mail from, and the DNS records Postal checks.",1789749433503]