Nhà phát triển

Hộp thư không quan tâm
ai đang điều khiển.

Mọi thứ ứng dụng làm được, mã của bạn cũng làm được: 104 thao tác đã tài liệu hoá trên 68 đường dẫn, nằm sau một tài liệu OpenAPI 3.1 mà bạn đọc được không cần khoá. Ứng dụng khách TypeScript bị ràng buộc vào tài liệu đó ở mỗi lần build.

Dán vào bất kỳ ứng dụng MCP nào. Nó tự đăng ký.
{ "mcpServers": {
    "openemail": {
      "url": "https://api.openemail.uk/mcp"
    } } }

MCP không cần khoá nào để dán. Ứng dụng khách tự tìm ra máy chủ uỷ quyền từ endpoint, tự đăng ký, rồi đưa bạn tới đây để đăng nhập.

104

thao tác đã tài liệu hoá

68

đường dẫn dưới một host

116

phương thức SDK, phủ hết tất cả

20

sự kiện webhook, thuộc ba nhóm

Tài liệu OpenAPI 3.1 nằm ở GET /openapi.json, và đọc nó không cần khoá.

Giao diện

Ba cánh cửa,
một hộp thư.

REST API

Một khoá của không gian làm việc quyết định một lệnh gọi được làm gì và được gửi thay cho những địa chỉ nào. Thu hồi là một lần cập nhật chứ không phải xoá, nên lệnh gọi sau đó được báo rằng khoá đã bị thu hồi.

/threads?query=invoice
/emails
emails:sendthreads:readwebhooks:write

Một khoá gửi thay cho tối đa 25 tên miền nguyên vẹn và 50 địa chỉ lẻ. GET /ping đọc lại các phạm vi nó đang giữ và các phạm vi mà vai trò của nó còn cho phép.

Máy chủ MCP

Trỏ một ứng dụng khách vào endpoint rồi đăng nhập. Không có khoá nào để dán, vì ứng dụng khách tự đăng ký và đưa bạn tới đây.

listThreads
threads:reademails:sendlabels:write

Công cụ được dựng từ những gì bên gọi được phép làm, nên một ứng dụng khách chỉ được đọc sẽ không có công cụ gửi nào trong đó. Một token vẫn chạm tới toàn bộ hộp thư.

Webhook

Đăng ký một endpoint https và hộp thư sẽ gửi tới đó. Các lần giao do chính hộp thư phát ra chứ không do một lệnh gọi API, nên soạn thư trong ứng dụng và gọi API đều tạo ra cùng một sự kiện.

/webhooks
email.receivedemail.sentemail.failedemail.openeddomain.verifiedsuppression.added

20 sự kiện thuộc ba nhóm, và mười endpoint cho mỗi hộp thư.

Tương đương

Ứng dụng khách không thể tụt lại sau
API.

Một bước kiểm tra tương đương đọc tài liệu OpenAPI ở mỗi lần build và báo lỗi khi có sai lệch: một phương thức trỏ tới thao tác mà đặc tả không có, một thao tác đã tài liệu hoá mà không có phương thức, hoặc một danh sách phạm vi không khớp với những gì thao tác đó đòi hỏi. Nó in ra những gì đã chứng minh được, và hôm nay con số đó là 116 phương thức SDK phủ toàn bộ 104 thao tác đã tài liệu hoá.

Một lần gửi, ba cách

Cấu hình, yêu cầu và lệnh gọi đều là cùng một thao tác, viết theo ba cách.

MCPAPISDK
{ "mcpServers": {
"openemail": {
"url": "https://api.openemail.uk/mcp"
} } }
01 · 5 tính năng, 1 sắp có

Tác tử, API & MCP

OpenEmail được làm ra để phần mềm vận hành được chẳng kém gì con người. Hộp thư vẫn là một, đằng nào cũng vậy.

/threads?query=invoice
{ "threads": 12 }
Vẫn hộp thư đó, dù người hay chương trình đang cầm.

Máy chủ MCP

Trỏ Claude, hoặc bất kỳ ứng dụng MCP nào, vào hộp thư của bạn.

/threads?query=invoice
{ "threads": 12 }
Vẫn hộp thư đó, dù người hay chương trình đang cầm.

OAuth cho ứng dụng bên thứ ba

Sắp có

Tự đăng ký ứng dụng với PKCE, để một ứng dụng xin quyền truy cập đúng cách.

Đã có phần đồng ý và thu hồi; chưa có phạm vi, nên một token chạm tới toàn bộ hộp thư của bạn chứ không chỉ phần mà ứng dụng xin.

/threads?query=invoice
{ "threads": 12 }
Vẫn hộp thư đó, dù người hay chương trình đang cầm.

REST API

Một HTTP API có tài liệu, với những khoá cấp được, giới hạn phạm vi được và thu hồi được.

/threads?query=invoice
{ "threads": 12 }
Vẫn hộp thư đó, dù người hay chương trình đang cầm.

SDK có kiểu

Client TypeScript trước, rồi đến phần còn lại.

/threads?query=invoice
{ "threads": 12 }
Vẫn hộp thư đó, dù người hay chương trình đang cầm.

Webhook

Báo cho endpoint của bạn khi thư đến, thay vì bắt bạn hỏi liên tục.

/threads?query=invoice
{ "threads": 12 }
Vẫn hộp thư đó, dù người hay chương trình đang cầm.

Bắt đầu nhanh

Từ số không đến một thư đã gửi.
Ba bước.

  1. 1

    Tạo một khoá

    Cài đặt, khoá API, trên một hộp thư bạn sở hữu. Chọn phạm vi của nó, và thu hẹp danh tính nó được gửi thay xuống nguyên tên miền hoặc từng địa chỉ lẻ. Chuỗi bí mật chỉ hiện một lần và thứ được lưu là một hàm băm một chiều.

    GET /ping trả lời bằng các phạm vi trên khoá và các phạm vi mà vai trò của nó còn cho phép.
    export OPENEMAIL_API_KEY=oe_live_9f2c1a4b7e05d3862c1f0a44_kX7… curl https://api.openemail.uk/ping \  -H "Authorization: Bearer $OPENEMAIL_API_KEY"
  2. 2

    Cài ứng dụng khách

    Một ứng dụng khách TypeScript không phụ thuộc gói nào, phát hành dưới dạng ESM và CommonJS, đọc khoá từ OPENEMAIL_API_KEY. Bỏ qua nó nếu bạn muốn tự gửi JSON, vì mọi endpoint đều là HTTP thuần.

    Node 18 trở lên, Workers, Deno, Bun và trình duyệt.
    bun add @openemail/sdk
  3. 3

    Gửi

    Phản hồi mang theo id. GET /emails/{id} tra ra nó, /events có dấu vết theo từng người nhận, và /tracking có lượt mở và lượt nhấp.

    Một lần thử lại mang cùng Idempotency-Key sẽ trả về kết quả đầu tiên kèm Idempotency-Replayed: true.
    import { init, openemail } from '@openemail/sdk' init({ apiKey: process.env.OPENEMAIL_API_KEY }) const email = await openemail.emails.send({  from: 'Acme Billing <[email protected]>',  to: '[email protected]',  subject: 'Your September invoice',  html: '<p>Invoice attached.</p>',}) console.log(email.id, email.status)

Còn thiếu

Những việc nó vẫn chưa làm
cho bạn.

Năm điều đáng biết trước khi bạn xây dựng trên nền này, chứ không phải sau đó.

Không có endpoint tải lên
Tệp đính kèm nội tuyến đi dưới dạng base64 với giới hạn tổng 5 MB. Tệp lớn hơn được gửi bằng cách gọi tên một tệp đã có trong không gian làm việc theo id của nó, và nó đi dưới dạng liên kết tải về.
Thư trả lại dừng ở hộp thư
Báo cáo gửi nhận được phân tích, khớp theo Message-ID, gắn nhãn lên chuỗi thư và đẩy đi dưới dạng webhook email.bounced. Không có gì ghi ngược lại vào bản ghi gửi, nên qua GET /emails một thư bị trả lại vẫn hiện là đã gửi.
Thư từ trình soạn thảo không có trong GET /emails
Thư gửi từ trình soạn thảo trong ứng dụng không xuất hiện trong danh sách đó, vì trình soạn thảo không ghi qua cùng một đường gửi.
OAuth có sự đồng ý, không có phạm vi
Yêu cầu được hiện ra trước khi cấp và mục Ứng dụng đã kết nối thu hồi lại được, nhưng một token chạm tới toàn bộ hộp thư của bạn chứ không chỉ phần mà ứng dụng xin.
Không có quy trình phát hành
Phát hành ứng dụng khách là chạy tay bước kiểm tra trước, bước build và bun publish, nên một phiên bản lên npm khi có người chạy nó chứ không phải khi thay đổi được đưa vào.

Xác minh một lần giao

Mỗi lần giao đều được ký,
và mọi lần thử lại đều mang id của nó.

Chữ ký là một HMAC-SHA-256 trên dấu thời gian, một dấu chấm, và phần thân thô. Hãy xác minh trên đúng các byte như khi chúng đến, vì phân tích rồi tuần tự hoá lại sẽ đảo thứ tự khoá và làm hỏng chữ ký.

Header trên mỗi lần giao
X-OpenEmail-Signature: t=1758240000,v1=9f0c4b2e7d1a86c3X-OpenEmail-Event: email.deliveredX-OpenEmail-Delivery: evt_4b7e05d3862c1f0a
Cửa sổ phát lại
300 giây, và việc thực thi nó là việc của bên nhận. Trình xác minh trong SDK mặc định dùng con số này.
Idempotency-Key
Được giữ chỗ bằng một chỉ mục duy nhất trên khoá đó cùng với khoá API của bạn, nên một lần thử lại sau khi hết thời gian chờ sẽ trả về kết quả đầu tiên kèm Idempotency-Replayed: true thay vì gửi hai lần.
Thử lại
Năm lần thử: ngay khi sự kiện xảy ra, rồi sau 1 phút, 5 phút, 25 phút và 2 giờ. Chỉ hết thời gian chờ, kết nối bị từ chối, 408, 425, 429 hoặc một mã 5xx mới được thử lại.
X-OpenEmail-Delivery
Id sự kiện chỉ được tạo một lần và mọi lần thử đều mang nó, nên bên nhận thấy cùng một id hai lần có thể bỏ lần thứ hai thay vì xử lý lại.

Dành cho ai

Một hộp thư.
Ba lối vào.

Cá nhân

Một địa chỉ miễn phí tại openemail.uk, với ứng dụng phía sau.

acme.comacme.devstudio.acme.com
hello@acme.comđã chuyển đến
billing@acme.comđã chuyển đến
oct-2026-signup@acme.comđã chuyển đến
anything-at-all@acme.comđã chuyển đến
Doanh nghiệp

Địa chỉ cho mọi người, thành viên không bị tính là chỗ ngồi.

[email protected]đã chia sẻ
SSarahAAliJJamieNNadia
Không thêm chỗ ngồi. Hoá đơn không đổi.
Nhà phát triển

Vẫn hộp thư đó, qua API, SDK và MCP.

/threads?query=invoice
{ "threads": 12 }
Vẫn hộp thư đó, dù người hay chương trình đang cầm.

Tạo một khoá.
Gửi thử gì đó.

Full API, MCP and SDK access trên mọi gói. Free đi kèm 50 AI actions a day.

Hộp thư của bạn,
theo cách của riêng bạn.

Hạ tầng email cho doanh nghiệp, AI, agent và thư cá nhân. Dựng cho quy mô, quyền riêng tư và quyền kiểm soát. Mọi thứ email lẽ ra phải có ngay từ ngày đầu.

OpenEmail

Hạ tầng email cho doanh nghiệp, AI, agent và thư cá nhân. Dựng cho quy mô, quyền riêng tư và quyền kiểm soát. Mọi thứ email lẽ ra phải có ngay từ ngày đầu.

© 2026 OpenEmail. Bảo lưu mọi quyền.
Trạng thái