import"./modulepreload-polyfill-Dezn_h7o.js";var e=`mailhub-landing-locale`,t=[`zh-CN`,`en-US`],n={"zh-CN":{"nav.features":`功能`,"nav.integrate":`接入`,"nav.quickstart":`使用说明`,"nav.api":`API`,"nav.mailboxes":`邮箱`,"nav.receiving":`收信`,"nav.domains":`域名配置`,"nav.smtp":`SMTP`,"nav.webhooks":`Webhooks`,"cta.login":`登录`,"cta.signup":`开始使用`,"cta.viewApi":`查看 API 示例`,"cta.github":`GitHub`,"common.copy":`复制`,"common.copied":`已复制`,"common.yes":`是`,"common.no":`否`,"hero.eyebrow":`事务邮件平台`,"hero.title":`用 API 与 SMTP 发送可靠的事务邮件`,"hero.lede":`自托管 MailHub 提供域名 DNS 引导、DKIM 签名、投递日志与签名 Webhook —— 无需被黑盒 SaaS 锁定。`,"hero.curl":`curl -X POST https://mail.example.com/api/send \\
  -H 'Authorization: Bearer &lt;USER_API_TOKEN&gt;' \\
  -H 'Content-Type: application/json' \\
  -d '{
    "from": "noreply@example.com",
    "to": "user@example.com",
    "subject": "Hello from MailHub",
    "text": "Signed with DKIM and queued by MailHub."
  }'`,"trust.selfHosted":`自托管`,"trust.webhooks":`投递 Webhooks`,"features.title":`为生产发信而设计`,"features.sub":`完成域名认证、发送与可观测所需的关键能力。`,"features.dns.title":`域名与 DNS`,"features.dns.body":`SPF / DKIM / DMARC 引导，支持 DNS 服务商一键写入。`,"features.smtp.title":`SMTP Submission`,"features.smtp.body":`面向应用的 SMTP 接入，凭据由你掌控。`,"features.api.title":`HTTP 发送 API`,"features.api.body":`Bearer Token + 简洁 JSON 发送接口，适合服务端集成。`,"features.mailboxes.title":`邮箱与收信`,"features.mailboxes.body":`创建长期或到期邮箱，支持 IMAP、POP3、转发和未知地址收取。`,"features.logs.title":`投递日志`,"features.logs.body":`跟踪入队与 MTA 结果，支持检索发送历史。`,"features.hooks.title":`Webhooks`,"features.hooks.body":`对已送达 / 退信 / 失败终态事件进行签名回调。`,"features.multi.title":`多用户隔离`,"features.multi.body":`域名、API 密钥与日志按账号隔离。`,"integrate.title":`三种接入方式`,"integrate.sub":`选择适合你技术栈的路径 —— 注册登录后完成配置。`,"integrate.api.title":`API`,"integrate.api.body":`创建 API 密钥，使用 Bearer Token 认证 POST JSON 到 /api/send。`,"integrate.api.link":`查看 API 示例 →`,"integrate.smtp.title":`SMTP`,"integrate.smtp.body":`将应用指向 MailHub Submission 端口，使用独立登录凭据。`,"integrate.smtp.link":`查看 SMTP 说明 →`,"integrate.hooks.title":`Webhooks`,"integrate.hooks.body":`为终态投递事件订阅端点，校验 HMAC 签名。`,"integrate.hooks.link":`查看 Webhook 事件 →`,"quickstart.title":`四步开始使用`,"quickstart.sub":`在同一个控制台完成域名、API 密钥、邮箱和投递配置。`,"quickstart.domain.title":`添加域名`,"quickstart.domain.body":`添加发信域名，并发布 MailHub 展示的 DNS 记录。`,"quickstart.domain.link":`查看域名配置 →`,"quickstart.token.title":`创建最小权限 API 密钥`,"quickstart.token.body":`只为每个接入授予所需的发信或邮箱权限。`,"quickstart.token.link":`查看 API 权限 →`,"quickstart.mailbox.title":`创建邮箱`,"quickstart.mailbox.body":`可在控制台创建长期邮箱，也可通过 API 创建长期或临时邮箱。`,"quickstart.mailbox.link":`查看邮箱 API →`,"quickstart.client.title":`接入客户端`,"quickstart.client.body":`使用 SMTP 发信，用 IMAP 或 POP3 收信，均使用完整邮箱地址和密码。`,"quickstart.client.link":`查看协议配置 →`,"api.title":`API 认证与发信`,"api.sub":`所有公开 API 均使用 Bearer Token。下列主机名为占位符，请替换为你的 MailHub 地址。`,"api.auth.title":`创建并保护 API 密钥`,"api.auth.body":`在控制台的 API 密钥页面创建访问 Token。所属账号可查看并复制完整 Token，请严格控制控制台访问权限，切勿写入浏览器代码或公开仓库。`,"api.auth.send":`使用 POST /api/send 发信`,"api.auth.read":`使用 GET /api/mailboxes 查询邮箱`,"api.auth.write":`使用 POST /api/mailboxes 创建邮箱`,"api.auth.messages":`使用 GET /api/inbound-messages 读取收到的邮件`,"api.send.title":`发送一封邮件`,"api.send.body":`From 域名必须属于该 Token 所在账号。若启用了已验证域名发信，请先完成控制台中的 DNS 校验。`,"api.curl":`curl -X POST https://mail.example.com/api/send \\
  -H 'Authorization: Bearer &lt;USER_API_TOKEN&gt;' \\
  -H 'Content-Type: application/json' \\
  -d '{
    "from": "noreply@example.com",
    "to": "user@example.com",
    "subject": "Hello from MailHub",
    "text": "Signed with DKIM and queued by MailHub."
  }'`,"api.fields.name":`字段`,"api.fields.required":`必填`,"api.fields.description":`说明`,"api.field.from":`该账号已添加域名上的发件地址`,"api.field.to":`单个收件人字符串或地址数组`,"api.field.subject":`默认值为 (no subject)`,"api.field.text":`纯文本正文`,"api.field.html":`HTML 正文；启用打开或点击跟踪时需要提供`,"api.field.tracking":`true/false，或 { opens, clicks }；仅改写 HTML`,"api.field.relay":`属于当前账号的发送中继 ID`,"api.responseLabel":`202 响应`,"api.response":`{
  "eventId": 42,
  "queued": true,
  "domain": "example.com",
  "recipients": ["user@example.com"],
  "smtp": "Message queued",
  "queueId": "AB12CD34",
  "tracking": { "enabled": false, "opens": false, "clicks": false }
}`,"api.note":`202 表示 MailHub 已接受邮件并交给 SMTP 投递。后续投递结果请查看控制台日志或使用 Webhook。`,"mailboxes.title":`邮箱 API 与客户端接入`,"mailboxes.sub":`为持续使用创建长期邮箱；为短流程创建可自动过期的临时邮箱。`,"mailboxes.api.title":`邮箱 API 权限`,"mailboxes.api.body":`使用拥有 mailboxes:write 权限的 Token 调用 POST /api/mailboxes，目标域名必须属于该账号。`,"mailboxes.api.mode":`permanent 或 temporary`,"mailboxes.api.address":`传入完整邮箱，或使用 domain 加 localPart`,"mailboxes.api.expires":`临时邮箱必填，范围为 5 分钟到 30 天`,"mailboxes.api.password":`可选；不传时会仅在创建响应中返回安全密码`,"mailboxes.client.title":`使用返回的客户端配置`,"mailboxes.client.body":`创建响应包含邮箱地址、密码、到期时间，以及可直接使用的 IMAP、POP3、SMTP 配置。`,"mailboxes.client.imap":`推荐，支持同步文件夹与已发送邮件`,"mailboxes.client.pop3":`适合下载到本地的客户端`,"mailboxes.client.smtp":`发信时同样使用完整邮箱地址和密码`,"mailboxes.permanent.label":`POST /api/mailboxes - 长期邮箱`,"mailboxes.permanent.curl":`curl -X POST https://mail.example.com/api/mailboxes -H 'Authorization: Bearer &lt;MAILBOX_API_TOKEN&gt;' -H 'Content-Type: application/json' -d '{
  "mode": "permanent",
  "address": "support@example.com",
  "password": "&lt;MAILBOX_PASSWORD&gt;",
  "displayName": "Support",
  "aliases": ["help"],
  "forwardTo": ["archive@example.net"],
  "keepForwarded": true,
  "quotaMb": 1024
}'`,"mailboxes.temporary.label":`POST /api/mailboxes - 临时邮箱`,"mailboxes.temporary.curl":`curl -X POST https://mail.example.com/api/mailboxes -H 'Authorization: Bearer &lt;MAILBOX_API_TOKEN&gt;' -H 'Content-Type: application/json' -d '{
  "mode": "temporary",
  "domain": "example.com",
  "expiresInMinutes": 60
}'`,"mailboxes.list.curl":`curl -H 'Authorization: Bearer &lt;MAILBOX_API_TOKEN&gt;' https://mail.example.com/api/mailboxes`,"mailboxes.responseLabel":`201 创建响应`,"mailboxes.response":`{
  "mailbox": {
    "address": "tmp-a1b2c3@example.com",
    "temporary": true,
    "expiresAt": "2026-07-15T12:00:00.000Z"
  },
  "password": "&lt;GENERATED_MAILBOX_PASSWORD&gt;",
  "clientConfig": {
    "incoming": { "protocol": "IMAP", "host": "mail.example.com", "port": 993, "security": "IMAPS" },
    "pop3": { "protocol": "POP3", "host": "mail.example.com", "port": 995, "security": "POP3S" },
    "outgoing": { "protocol": "SMTP", "host": "mail.example.com", "port": 465, "security": "SMTPS" }
  }
}`,"mailboxes.lifecycle.password":`自动生成的密码仅在创建响应中返回一次；请立即保存。`,"mailboxes.lifecycle.temporary":`临时邮箱在指定时间后到期，随后停止收信和认证。`,"mailboxes.lifecycle.list":`使用 mailboxes:read 查询邮箱元数据；列表接口永不返回密码。`,"receiving.title":`收信`,"receiving.sub":`邮件通过域名 MX 记录投递，可在 MailHub 收件箱、标准 IMAP/POP3 客户端或受限 Bearer API 中读取。`,"receiving.list.label":`GET /api/inbound-messages - 邮件列表`,"receiving.list.curl":`curl -H 'Authorization: Bearer &lt;INBOUND_API_TOKEN&gt;' 'https://mail.example.com/api/inbound-messages?page=1&amp;pageSize=20&amp;folder=INBOX&amp;read=false'`,"receiving.detail.label":`GET /api/inbound-messages/:id - 邮件详情`,"receiving.detail.curl":`curl -H 'Authorization: Bearer &lt;INBOUND_API_TOKEN&gt;' https://mail.example.com/api/inbound-messages/123`,"receiving.api.note":`收信 API 需要 messages:read，并受 Token 邮箱范围限制。只有明确设为“全系统邮箱”的管理员 Token 才能跨账号读取。`,"receiving.delivery.title":`邮件投递到 MailHub`,"receiving.delivery.body":`将域名 MX 指向收信主机。外部邮件服务器会投递到 SMTP 25 端口；MailHub 将邮件存入已有邮箱、别名或未知地址收取目标。`,"receiving.routing.title":`邮箱、别名与未知地址收取`,"receiving.routing.body":`先创建完整邮箱地址，再在邮箱上添加别名或转发。通过控制台的域名未知地址收取设置，将不存在的本地部分路由到某个邮箱或外部地址。`,"receiving.protocols.protocol":`协议`,"receiving.protocols.ports":`推荐端口`,"receiving.protocols.security":`加密`,"receiving.protocols.use":`用途`,"receiving.protocols.imapSecurity":`SSL/TLS 或 STARTTLS`,"receiving.protocols.imapUse":`推荐，用于同步文件夹`,"receiving.protocols.pop3Security":`SSL/TLS 或 STLS`,"receiving.protocols.pop3Use":`下载到本地的客户端`,"receiving.protocols.smtpSecurity":`SMTPS 或 STARTTLS`,"receiving.protocols.smtpUse":`使用相同邮箱地址和密码发信`,"receiving.folders":`IMAP 会提供 INBOX、Sent、Drafts、Trash、Junk 和 Archive。需要同步这些文件夹并保存已发送邮件时，请优先使用 IMAP。`,"domainsDoc.title":`域名配置`,"domainsDoc.sub":`先在 MailHub 中添加域名。控制台 DNS 面板展示的验证、DKIM、SPF、DMARC 与发信主机值是该域名的最终准则。`,"domainsDoc.col.purpose":`用途`,"domainsDoc.col.record":`记录`,"domainsDoc.col.requirement":`要求`,"domainsDoc.row.verify":`域名归属验证`,"domainsDoc.row.verifyValue":`发布控制台生成的验证值。`,"domainsDoc.row.dkim":`发布该域名生成的公钥。`,"domainsDoc.row.spf":`仅保留一条 SPF，并包含 MailHub 要求的发信 IP/主机。`,"domainsDoc.row.dmarc":`先以监控策略开始，确认对齐后再逐步增强策略。`,"domainsDoc.row.mx":`收信`,"domainsDoc.row.mxValue":`MX 指向 MailHub 收信主机，并确保该主机存在 A/AAAA 记录。`,"domainsDoc.note":`为提高投递可靠性，还需将发信 IP 的 PTR 配置为 MailHub 发信主机名，并在防火墙放行文档所列 SMTP、IMAP、POP3 端口。`,"smtp.title":`SMTP Submission`,"smtp.sub":`默认监听端口（部署时可覆盖）：`,"smtp.app.title":`应用 SMTP`,"smtp.app.body":`在控制台创建 SMTP 登录凭据供应用使用，并搭配属于该账号的 From 域名。`,"smtp.mailbox.title":`邮箱 SMTP`,"smtp.mailbox.body":`创建出的邮箱也可以用完整地址和密码通过 SMTP 认证发信；IMAP 与 POP3 使用相同的凭据。`,"smtp.note":`发信优先使用 465 或 587，IMAP 使用 993，POP3 使用 995。若部署覆盖了默认端口或 TLS 监听，请以创建邮箱响应中的 clientConfig 为准。`,"errors.title":`响应与常见错误`,"errors.sub":`API 返回 JSON。使用响应体前，请先判断 HTTP 状态码。`,"errors.status":`状态码`,"errors.meaning":`含义`,"errors.action":`处理方式`,"errors.201.meaning":`邮箱已创建`,"errors.201.action":`保存一次性密码与 clientConfig。`,"errors.202.meaning":`邮件已被接受并交给 SMTP 投递`,"errors.202.action":`在日志或 Webhook 中查看后续投递状态。`,"errors.400.meaning":`请求参数不正确，或不满足域名归属规则`,"errors.400.action":`阅读 JSON error 字段，修正请求体或域名配置。`,"errors.401.meaning":`Token 缺失、无效、已撤销或已过期`,"errors.401.action":`创建或轮换一个有效 Token。`,"errors.403.meaning":`Token 缺少所需权限`,"errors.403.action":`在控制台 API 密钥页面授予最小所需权限。`,"errors.409.meaning":`邮箱地址已存在`,"errors.409.action":`换用其他地址，或使用现有邮箱。`,"webhooks.title":`投递 Webhooks`,"webhooks.sub":`仅终态事件 —— 向你的系统发送签名 HTTPS 回调。`,"webhooks.col.status":`状态`,"webhooks.col.type":`type`,"webhooks.sig":`签名请求头：`,"ctaBand.title":`准备好发送了吗？`,"ctaBand.sub":`创建账号、添加域名，几分钟内发出第一封邮件。`,"footer.tag":`自托管邮件投递控制平面`},"en-US":{"nav.features":`Features`,"nav.integrate":`Integrate`,"nav.quickstart":`Quick start`,"nav.api":`API`,"nav.mailboxes":`Mailboxes`,"nav.receiving":`Receiving`,"nav.domains":`Domain setup`,"nav.smtp":`SMTP`,"nav.webhooks":`Webhooks`,"cta.login":`Log in`,"cta.signup":`Get started`,"cta.viewApi":`View API sample`,"cta.github":`GitHub`,"common.copy":`Copy`,"common.copied":`Copied`,"common.yes":`Yes`,"common.no":`No`,"hero.eyebrow":`Transactional email platform`,"hero.title":`Send reliable email via API & SMTP`,"hero.lede":`Self-hosted MailHub gives you domain DNS guidance, DKIM signing, delivery logs, and signed webhooks — without locking you into a black-box SaaS.`,"hero.curl":`curl -X POST https://mail.example.com/api/send \\
  -H 'Authorization: Bearer &lt;USER_API_TOKEN&gt;' \\
  -H 'Content-Type: application/json' \\
  -d '{
    "from": "noreply@example.com",
    "to": "user@example.com",
    "subject": "Hello from MailHub",
    "text": "Signed with DKIM and queued by MailHub."
  }'`,"trust.selfHosted":`Self-hosted`,"trust.webhooks":`Delivery webhooks`,"features.title":`Built for production senders`,"features.sub":`Everything you need to authenticate domains and observe delivery.`,"features.dns.title":`Domains & DNS`,"features.dns.body":`Guided SPF, DKIM, DMARC, and one-click DNS provider writes.`,"features.smtp.title":`SMTP Submission`,"features.smtp.body":`App-friendly SMTP listeners with credentials you control.`,"features.api.title":`HTTP Send API`,"features.api.body":`Bearer tokens and a simple JSON send endpoint for apps and services.`,"features.mailboxes.title":`Mailboxes & receiving`,"features.mailboxes.body":`Create persistent or expiring inboxes with IMAP, POP3, forwarding, and catch-all routing.`,"features.logs.title":`Delivery logs`,"features.logs.body":`Track queue and MTA outcomes with searchable send history.`,"features.hooks.title":`Webhooks`,"features.hooks.body":`Signed callbacks for sent, bounced, and failed terminal events.`,"features.multi.title":`Multi-user isolation`,"features.multi.body":`Domains, tokens, and logs stay scoped to each account.`,"integrate.title":`Three ways to integrate`,"integrate.sub":`Pick the path that matches your stack — configure after sign-in.`,"integrate.api.title":`API`,"integrate.api.body":`Create an API token, then POST JSON to /api/send with Bearer auth.`,"integrate.api.link":`See API sample →`,"integrate.smtp.title":`SMTP`,"integrate.smtp.body":`Point your app at MailHub submission ports with per-user credentials.`,"integrate.smtp.link":`See SMTP details →`,"integrate.hooks.title":`Webhooks`,"integrate.hooks.body":`Subscribe endpoints to terminal delivery events with HMAC signatures.`,"integrate.hooks.link":`See webhook events →`,"quickstart.title":`Start in four steps`,"quickstart.sub":`Keep domain, token, mailbox, and delivery configuration in one console.`,"quickstart.domain.title":`Add a domain`,"quickstart.domain.body":`Add your sending domain and publish the DNS records shown by MailHub.`,"quickstart.domain.link":`Review domain setup →`,"quickstart.token.title":`Create a scoped token`,"quickstart.token.body":`Give each integration only the send or mailbox permissions it needs.`,"quickstart.token.link":`Review API access →`,"quickstart.mailbox.title":`Provision mailboxes`,"quickstart.mailbox.body":`Create persistent mailboxes in the console or create persistent and temporary mailboxes by API.`,"quickstart.mailbox.link":`Review mailbox API →`,"quickstart.client.title":`Connect your client`,"quickstart.client.body":`Use SMTP to send and IMAP or POP3 to receive with the full mailbox address and password.`,"quickstart.client.link":`Review protocol settings →`,"api.title":`API authentication and sending`,"api.sub":`All public API calls use a Bearer token. The hostname below is a placeholder; replace it with your MailHub host.`,"api.auth.title":`Create and protect a token`,"api.auth.body":`Create a token in Console > API keys. Full tokens remain visible to the owning account, so restrict console access and never place tokens in browser code or public repositories.`,"api.auth.send":`send messages with POST /api/send`,"api.auth.read":`list mailboxes with GET /api/mailboxes`,"api.auth.write":`create mailboxes with POST /api/mailboxes`,"api.auth.messages":`read inbound messages with GET /api/inbound-messages`,"api.send.title":`Send a message`,"api.send.body":`The From domain must belong to the token account. When verified sending is enabled, complete the domain DNS checks before sending.`,"api.curl":`curl -X POST https://mail.example.com/api/send \\
  -H 'Authorization: Bearer &lt;USER_API_TOKEN&gt;' \\
  -H 'Content-Type: application/json' \\
  -d '{
    "from": "noreply@example.com",
    "to": "user@example.com",
    "subject": "Hello from MailHub",
    "text": "Signed with DKIM and queued by MailHub."
  }'`,"api.fields.name":`Field`,"api.fields.required":`Required`,"api.fields.description":`Description`,"api.field.from":`sender address on an account-owned domain`,"api.field.to":`recipient string or an address array`,"api.field.subject":`defaults to (no subject)`,"api.field.text":`plain-text body`,"api.field.html":`HTML body; required when enabling open or click tracking`,"api.field.tracking":`true/false, or { opens, clicks }; rewrites HTML only`,"api.field.relay":`an account-owned outbound SMTP relay ID`,"api.responseLabel":`202 response`,"api.response":`{
  "eventId": 42,
  "queued": true,
  "domain": "example.com",
  "recipients": ["user@example.com"],
  "smtp": "Message queued",
  "queueId": "AB12CD34",
  "tracking": { "enabled": false, "opens": false, "clicks": false }
}`,"api.note":`A 202 response means MailHub accepted the message for SMTP delivery. Use the console delivery log or webhooks to observe the later result.`,"mailboxes.title":`Mailbox API and clients`,"mailboxes.sub":`Create a persistent address for ongoing work, or an expiring address for a short-lived workflow.`,"mailboxes.api.title":`Mailbox API scope`,"mailboxes.api.body":`POST to /api/mailboxes with a token holding mailboxes:write. The target domain must belong to that account.`,"mailboxes.api.mode":`permanent or temporary`,"mailboxes.api.address":`use a full address, or choose domain plus localPart`,"mailboxes.api.expires":`required for temporary mailboxes; 5 minutes to 30 days`,"mailboxes.api.password":`optional; a secure password is returned once when omitted`,"mailboxes.client.title":`Use the returned configuration`,"mailboxes.client.body":`Creation returns the address, password, expiration, and ready-to-use IMAP, POP3, and SMTP settings.`,"mailboxes.client.imap":`recommended for synchronized folders and sent mail`,"mailboxes.client.pop3":`for download-oriented clients`,"mailboxes.client.smtp":`use the same full mailbox address and password to send`,"mailboxes.permanent.label":`POST /api/mailboxes - permanent`,"mailboxes.permanent.curl":`curl -X POST https://mail.example.com/api/mailboxes -H 'Authorization: Bearer &lt;MAILBOX_API_TOKEN&gt;' -H 'Content-Type: application/json' -d '{
  "mode": "permanent",
  "address": "support@example.com",
  "password": "&lt;MAILBOX_PASSWORD&gt;",
  "displayName": "Support",
  "aliases": ["help"],
  "forwardTo": ["archive@example.net"],
  "keepForwarded": true,
  "quotaMb": 1024
}'`,"mailboxes.temporary.label":`POST /api/mailboxes - temporary`,"mailboxes.temporary.curl":`curl -X POST https://mail.example.com/api/mailboxes -H 'Authorization: Bearer &lt;MAILBOX_API_TOKEN&gt;' -H 'Content-Type: application/json' -d '{
  "mode": "temporary",
  "domain": "example.com",
  "expiresInMinutes": 60
}'`,"mailboxes.list.curl":`curl -H 'Authorization: Bearer &lt;MAILBOX_API_TOKEN&gt;' https://mail.example.com/api/mailboxes`,"mailboxes.responseLabel":`201 creation response`,"mailboxes.response":`{
  "mailbox": {
    "address": "tmp-a1b2c3@example.com",
    "temporary": true,
    "expiresAt": "2026-07-15T12:00:00.000Z"
  },
  "password": "&lt;GENERATED_MAILBOX_PASSWORD&gt;",
  "clientConfig": {
    "incoming": { "protocol": "IMAP", "host": "mail.example.com", "port": 993, "security": "IMAPS" },
    "pop3": { "protocol": "POP3", "host": "mail.example.com", "port": 995, "security": "POP3S" },
    "outgoing": { "protocol": "SMTP", "host": "mail.example.com", "port": 465, "security": "SMTPS" }
  }
}`,"mailboxes.lifecycle.password":`The returned password is the only opportunity to read an automatically generated password.`,"mailboxes.lifecycle.temporary":`A temporary mailbox expires after the requested interval and then stops receiving mail and authenticating.`,"mailboxes.lifecycle.list":`Use mailboxes:read to list mailbox metadata; passwords are never returned by the list endpoint.`,"receiving.title":`Receiving mail`,"receiving.sub":`Mail arrives through the domain MX record. Read it in MailHub Inbox, through standard IMAP/POP3 clients, or with a scoped Bearer API.`,"receiving.list.label":`GET /api/inbound-messages - list`,"receiving.list.curl":`curl -H 'Authorization: Bearer &lt;INBOUND_API_TOKEN&gt;' 'https://mail.example.com/api/inbound-messages?page=1&amp;pageSize=20&amp;folder=INBOX&amp;read=false'`,"receiving.detail.label":`GET /api/inbound-messages/:id - detail`,"receiving.detail.curl":`curl -H 'Authorization: Bearer &lt;INBOUND_API_TOKEN&gt;' https://mail.example.com/api/inbound-messages/123`,"receiving.api.note":`Inbound APIs require messages:read and are limited by the token mailbox access setting. Only administrator tokens explicitly set to all mailboxes can read across accounts.`,"receiving.delivery.title":`Inbound delivery`,"receiving.delivery.body":`Set the domain MX record to the receiving host. External mail servers then deliver to SMTP port 25, and MailHub stores mail for an existing mailbox, alias, or catch-all target.`,"receiving.routing.title":`Mailbox, aliases, and catch-all`,"receiving.routing.body":`Create a full mailbox address first. Add aliases or forwarding on that mailbox, and configure the domain catch-all in the console to route unknown local parts to a mailbox or another address.`,"receiving.protocols.protocol":`Protocol`,"receiving.protocols.ports":`Recommended ports`,"receiving.protocols.security":`Security`,"receiving.protocols.use":`Use`,"receiving.protocols.imapSecurity":`SSL/TLS or STARTTLS`,"receiving.protocols.imapUse":`recommended for synchronized folders`,"receiving.protocols.pop3Security":`SSL/TLS or STLS`,"receiving.protocols.pop3Use":`download-oriented clients`,"receiving.protocols.smtpSecurity":`SMTPS or STARTTLS`,"receiving.protocols.smtpUse":`send with the same mailbox address and password`,"receiving.folders":`IMAP exposes INBOX, Sent, Drafts, Trash, Junk, and Archive. Use IMAP when the client should synchronize these folders and save sent messages.`,"domainsDoc.title":`Domain configuration`,"domainsDoc.sub":`Create the domain in MailHub first. Its DNS panel is the source of truth for your exact verification, DKIM, SPF, DMARC, and sender-host values.`,"domainsDoc.col.purpose":`Purpose`,"domainsDoc.col.record":`Record`,"domainsDoc.col.requirement":`Requirement`,"domainsDoc.row.verify":`Domain ownership`,"domainsDoc.row.verifyValue":`Publish the verification value generated in the console.`,"domainsDoc.row.dkim":`Publish the public key generated for this domain.`,"domainsDoc.row.spf":`Keep one SPF record and include the sender IP/host required by MailHub.`,"domainsDoc.row.dmarc":`Start with monitoring, then strengthen the policy after alignment is verified.`,"domainsDoc.row.mx":`Inbound mail`,"domainsDoc.row.mxValue":`Point MX to the MailHub receiving host and ensure that host has an A/AAAA record.`,"domainsDoc.note":`For reliable delivery, also configure the sending IP's PTR to match the MailHub sending hostname and allow the documented SMTP, IMAP, and POP3 ports through your firewall.`,"smtp.title":`SMTP submission`,"smtp.sub":`Default listener ports (override in your deployment):`,"smtp.app.title":`Application SMTP`,"smtp.app.body":`Create an SMTP login credential in the console for an application. Use that credential with an account-owned From domain.`,"smtp.mailbox.title":`Mailbox SMTP`,"smtp.mailbox.body":`A created mailbox can also authenticate over SMTP with its full email address and password. Use the same credentials for IMAP or POP3.`,"smtp.note":`Prefer 465 or 587 for sending, 993 for IMAP, and 995 for POP3. The creation response is the source of truth when a deployment overrides default ports or TLS listeners.`,"errors.title":`Responses and common errors`,"errors.sub":`The API returns JSON. Validate the HTTP status before consuming a response body.`,"errors.status":`Status`,"errors.meaning":`Meaning`,"errors.action":`What to do`,"errors.201.meaning":`Mailbox created`,"errors.201.action":`Store the one-time password and clientConfig.`,"errors.202.meaning":`Message accepted for SMTP delivery`,"errors.202.action":`Inspect delivery logs or webhooks for later delivery status.`,"errors.400.meaning":`Invalid request or domain ownership rule`,"errors.400.action":`Read the JSON error and correct the request body or domain setup.`,"errors.401.meaning":`Missing, invalid, revoked, or expired token`,"errors.401.action":`Create or rotate a valid token.`,"errors.403.meaning":`Token does not have the required scope`,"errors.403.action":`Grant the minimum required scope in Console > API keys.`,"errors.409.meaning":`Mailbox address already exists`,"errors.409.action":`Choose another address or use the existing mailbox.`,"webhooks.title":`Delivery webhooks`,"webhooks.sub":`Terminal events only — signed HTTPS callbacks to your systems.`,"webhooks.col.status":`Status`,"webhooks.col.type":`type`,"webhooks.sig":`Signature header:`,"ctaBand.title":`Ready to send?`,"ctaBand.sub":`Create an account, add a domain, and ship your first message in minutes.`,"footer.tag":`Self-hosted email delivery control plane`}};function r(){try{let n=localStorage.getItem(e);if(n&&t.includes(n))return n}catch{}return(typeof navigator<`u`&&navigator.language||``).toLowerCase().startsWith(`zh`)?`zh-CN`:`en-US`}function i(e,t){return n[e]?.[t]??n[`en-US`][t]??t}function a(t){try{localStorage.setItem(e,t)}catch{}}var o=r();function s(e){let n=e&&t.includes(e)?e:`en-US`;o=n,a(n),document.documentElement.lang=n===`zh-CN`?`zh-CN`:`en`,document.querySelectorAll(`[data-i18n]`).forEach(e=>{let t=e.dataset.i18n;t&&(e.textContent=i(n,t))}),document.querySelectorAll(`[data-i18n-html]`).forEach(e=>{let t=e.dataset.i18nHtml;t&&(e.innerHTML=i(n,t))}),document.querySelectorAll(`.lang-btn`).forEach(e=>{e.classList.toggle(`is-active`,e.dataset.locale===n)}),document.title=n===`zh-CN`?`MailHub · 事务邮件平台`:`MailHub · Transactional Email`}function c(){document.querySelectorAll(`.lang-btn`).forEach(e=>{e.addEventListener(`click`,()=>{s(e.dataset.locale||`en-US`)})})}function l(){document.querySelectorAll(`.copy-btn`).forEach(e=>{e.addEventListener(`click`,async()=>{let t=e.dataset.copyTarget,n=(t?document.getElementById(t):null)?.textContent||``;if(n)try{await navigator.clipboard.writeText(n);let t=e.textContent;e.textContent=i(o,`common.copied`),window.setTimeout(()=>{e.textContent=t||i(o,`common.copy`)},1400)}catch{}})})}s(o),c(),l();