Email 适配器

wesgine 的 Email 适配器为每个 Cell 提供邮箱账号管理和发送能力。


API 端点

GET    /cells/{id}/email               邮箱账号列表
POST   /cells/{id}/email               添加邮箱账号
DELETE /cells/{id}/email/{address}      删除邮箱账号
POST   /cells/{id}/email/{address}/test SMTP 测试

Cell Handle

cell.Email() → EmailHandle
  .List(ctx)
  .Add(ctx, config)
  .Delete(ctx, address)
  .Test(ctx, address)

配额管理

Email 账号受 CellQuotas.MaxEmailAccounts 限制。

配额判据在唯一增长点 email.Store.PutAccount(INV-QUOTA-05):


Seed Declaration(INV-SEED-01)

CellSpec.Email 是出生声明,不是常驻状态:

  1. 仅在 Cell 首次 boot 播种进 wes_email_configs
  2. 此后存储是唯一权威
  3. 声明不再被读

这防止了运行时改的密码被声明覆盖。


IMAP 收信

IMAP 收信注册与温度 imapWarmnessCount 一律读存储(不读声明):


Per-Cell 隔离

每个 Cell 拥有独立的邮箱账号配置:


反模式

禁止正确做法
在 Cell.Start 校验 len(spec.Email)运行时在 PutAccount 校验
运行时读 CellSpec.Email 声明读存储
跨 Cell 共享邮箱配置Per-Cell 独立