SDK
Nhật ký thay đổi
Mọi bản phát hành của package, mới nhất trước.
0.1.0
Bản phát hành thứ hai. Contact có thể được ghi và nhóm vào audience, một domain có thể có tên miền tracking và tên miền files riêng, và một key có thể tự xoay vòng. Có một thay đổi phá vỡ code hiện có, và nó được liệt kê bên dưới.
openemail.audienceslà mới: các danh sách contact có tên, vớilist,get,create,update,delete,listContacts,addContactvàremoveContact. Mỗi workspace có một audience mặc định, là audience cóbuiltinlàdefault, chứa mọi contact và không thể bị xóa.openemail.contactsnay đã có thể ghi.create,updatevàdeleteđược bổ sung cạnhlistvàget, và mỗi phương thức nhận địa chỉ email làm id.openemail.domains.update()đặt hoặc xóa tên miền tracking và tên miền files riêng của một domain, cònDomainResource.trackingvàDomainResource.storagebáo cáo tình trạng của từng cái.openemail.me.rotate()thay secret của key đang gọi và phân giải ra key mới đầy đủ. Không có khoảng chồng lấn, nên secret cũ ngừng hoạt động ngay khi lệnh gọi trả về.KeyResource.domainAllowlistgiới hạn một key theo cả domain, bên cạnh các địa chỉ riêng lẻ trongaddressAllowlist. Một domain bao gồm mọi địa chỉ trên nó, kể cả những địa chỉ được tạo sau key.- Tệp đính kèm có thể được gửi theo tham chiếu.
{ fileId }đứng cạnh dạng nhúng trực tiếp, vàattachmentDeliverychọn giữa việc mang tệp bên trong thư, thay chúng bằng liên kết tải xuống, hoặc để kích thước quyết định. - Thêm mười sự kiện webhook, tổng cộng hai mươi: thư trả lời, chuyển thành công, trì hoãn, danh sách chặn, lượt tải xuống, và ba sự kiện về domain.
email.downloadedkích hoạt khi có người tải một tệp đã được gửi dưới dạng liên kết tải xuống. Một liên kết dùng chung cho mọi người nhận thư, nên sự kiện không nêu người nhận nào.- Bốn scope mới:
contacts:write,audiences:read,audiences:writevàkeys:write. - Chín trường trước đây là chuỗi tự do nay có kiểu được đặt tên, trong đó có
RecipientKind,ContactSource,RuleMatchModevàWebhookDeliveryStatus. Chúng vẫn nhận và trả về đúng những chuỗi như trước.
const audience = await openemail.audiences.create({ name: 'Product updates' }) await openemail.contacts.create({ email: '[email protected]', name: 'Grace Hopper' })await openemail.audiences.addContact(audience.id, { email: '[email protected]' })Những gì bị phá vỡ trong 0.1.0
contacts.listtrả vềPage<ContactResource>thay vì một mảng. Hãy đọc các dòng từpage.itemsvà đi theopage.nextCursorchừng nàopage.hasMorecòn là true. Danh bạ không giới hạn kích thước, và mảng cũ dừng ở 200 dòng mà không báo gì.API_SCOPES,ERROR_TYPES,MESSAGE_ENCRYPTION_FORMATS,RULE_ACTIONS,RULE_FIELDS,RULE_OPERATORSvàWEBHOOK_EVENTSlà các object có khóa thay vì mảng, nên mỗi phần tử đều có tên để tham chiếu. Các giá trị không đổi.contacts.listxếp các contact chưa từng được gửi thư xuống cuối thay vì lên đầu, nên một contact bạn vừa tạo không còn nhảy lên đầu danh bạ.
import { API_SCOPES, WEBHOOK_EVENTS } from '@openemail/sdk' const scopes = Object.values(API_SCOPES)const subscribable = new Set<string>(Object.values(WEBHOOK_EVENTS)) const page = await openemail.contacts.list()for (const contact of page.items) send(contact.email)Code chỉ dùng các kiểu dẫn xuất vẫn chạy mà không cần sửa. ApiScope, WebhookEvent và các kiểu còn lại vẫn giữ nguyên như trước.
0.0.1
Bản phát hành đầu tiên: một phương thức có kiểu cho mỗi endpoint, và không có phụ thuộc runtime nào.
- Gửi thư: một thư, gửi theo lô, gửi hẹn giờ, cửa sổ hoàn tác, và dịch sang ngôn ngữ người nhận đọc.
- Template: tạo, đánh phiên bản, xuất bản, xem trước và gửi.
- Theo dõi: lượt mở, lượt nhấp, và bản tóm tắt cho từng thư.
- Hộp thư: luồng thư, bản nháp, nhãn, danh bạ và quy tắc.
- Workspace: domain, địa chỉ, thành viên, vai trò và cài đặt.
- Webhook, kèm bộ xác minh chữ ký chạy được ở bất cứ đâu có WebCrypto.
- Sự kiện lịch, bao gồm cả tệp ICS.
- Inbox dùng một lần, phần duy nhất cũng chạy được trong trình duyệt.
- Phân trang theo cursor trên mọi danh sách, qua
listAllvàiterate. - Hai lớp lỗi, và cơ chế thử lại không thể gửi trùng.
- ESM và CommonJS, trên Node 20+, Bun, Deno và Cloudflare Workers.