通过 API 和 MCP 管理联系人

通过 TrekMail 消息 API 和 MCP 工具创建、导入、导出、搜索及整理联系人与群组,了解端点、权限范围和分页方式。

文章详情

类型、难度、套餐及最近更新信息。

类型
参考资料
难度
中级
套餐
Starter · Pro · Agency
最近更新
2026年9月10日

邮箱通讯录完全可以编程管理。消息 API 和 MCP 工具能够创建、编辑和删除联系人,批量导入和导出(CSV 或 vCard),搜索大型通讯录,并将联系人整理到群组中。这些数据与 Webmail 和 CardDAV 客户端中显示的数据相同,因此 AI 代理添加的联系人会出现在手机上,而你通过手机添加的联系人也会对 API 可见。

开始之前

  • 联系人使用消息令牌接口 (/api/v1/messages/...) 及其权限范围,而不是控制面板 API 令牌。
  • 每次调用都仅限令牌自己的邮箱。令牌只能查看和管理自己的联系人与群组,绝不能访问其他邮箱的联系人与群组。
  • 联系人在邮箱中按电子邮件地址识别。导入操作会更新匹配的联系人。使用现有电子邮件地址创建联系人时,系统会原样返回该联系人,而不会创建重复项。
  • 列表响应会返回一组整洁且易读的字段(姓名、电子邮件地址、公司、职位、电话、地址、生日和备注)。同步联系人背后的原始 CardDAV 卡片绝不会返回;你始终会收到整理后的版本。
  • 导入支持最大 10 MB 的 CSV 和 vCard (.vcf) 文件,并能识别 Google 通讯录、Outlook、Apple 和 Roundcube 的导出格式,包括 UTF-8、UTF-16 和 BOM 的特殊情况。

权限范围

权限范围 功能
messages:read 列出和搜索联系人、列出群组及其成员、导出
messages:write 创建、更新、删除和导入联系人;创建和管理群组

管理联系人

基础路径:/api/v1/messages/contacts

方法 路径 权限范围 用途
GET /contacts messages:read 列出联系人,支持搜索和分页
POST /contacts messages:write 创建联系人
PATCH /contacts/{id} messages:write 更新联系人
DELETE /contacts/{id} messages:write 删除联系人
POST /contacts/import messages:write 批量导入 CSV 或 vCard 文件
GET /contacts/export messages:read 将所有联系人导出为 CSV 或 vCard

列出和搜索

GET /api/v1/messages/contacts?q=alice&per_page=50&page=1
Scope: messages:read

q 会匹配姓名或电子邮件地址。结果以分页形式返回(per_page 为 1 到 100,默认为 50),并包含 pagination 块(totalper_pagecurrent_pagelast_page),因此你可以逐页浏览大型通讯录直至末尾,而不会停在第一页。

创建联系人

POST /api/v1/messages/contacts
Scope: messages:write
{
  "email": "ada@example.com",
  "name": "Ada Lovelace",
  "company": "Analytical Engines",
  "job_title": "Mathematician",
  "phone": "+1 555 0100",
  "address": "London",
  "birthday": "1815-12-10",
  "notes": "Met at the conference"
}

只有 email 是必填项。如果使用该电子邮件地址的联系人已经存在,系统会原样返回现有联系人。创建操作绝不会生成重复项,也不会覆盖已保存的详细信息。

批量导入

POST /api/v1/messages/contacts/import
Scope: messages:write
{
  "content_base64": "<base64 of your .csv or .vcf file>",
  "format": "csv"
}

发送经过 base64 编码的文件,并将 format 设为 csvvcf(解码后最大 10 MB)。响应会说明应用了多少行,以及有多少行因缺少可用的电子邮件地址而被跳过:

{ "imported": 128, "skipped": 3 }

系统会自动识别 Google、Outlook、Apple 和 Roundcube 导出文件中的列标题,因此大多数导出文件无需编辑即可导入。

导出

GET /api/v1/messages/contacts/export?format=vcard
Scope: messages:read

将整个通讯录作为一个经过 base64 编码的文件返回:

{ "format": "vcard", "content_base64": "..." }

使用 format=csv 可获得适合电子表格的文件,使用 format=vcard 可获得能够载入其他邮件客户端的 .vcf 文件。

联系人群组

群组是通讯录中的通讯组列表。基础路径:/api/v1/messages/contact-groups

方法 路径 权限范围 用途
GET /contact-groups messages:read 列出群组,每个群组包含自己的 contact_count
POST /contact-groups messages:write 创建群组
PATCH /contact-groups/{id} messages:write 重命名群组
DELETE /contact-groups/{id} messages:write 删除群组
GET /contact-groups/{id}/members messages:read 列出群组中的联系人
POST /contact-groups/{id}/members messages:write 向群组添加联系人
DELETE /contact-groups/{id}/members messages:write 从群组移除联系人

列出群组成员

GET /api/v1/messages/contact-groups/42/members?per_page=50&page=1
Scope: messages:read

返回群组中的联系人,字段与联系人列表中的整洁字段相同,另外还包含 pagination 块和群组的 contact_count 总数,因此你可以读取群组成员情况,而不必盲目修改。

添加或移除成员

POST /api/v1/messages/contact-groups/42/members
Scope: messages:write
{ "contact_ids": [11, 12, 13] }

添加操作是幂等的:已经在群组中的联系人将保持原样。只能添加属于同一邮箱的联系人。 每个添加或移除请求接受 1 到 200 个联系人 ID;更大的批次必须拆分为多个请求。

MCP 工具

AI 代理可通过 MCP 使用同一个通讯录,包括专用 stdio 服务器和公共 MCP 服务器:

工具 权限范围 用途
list_contacts read 分页列出和搜索联系人
create_contact write 创建联系人
update_contact write 更新联系人
delete_contact write 删除联系人
import_contacts write 导入 base64 格式的 CSV/vCard 文件
export_contacts read 将所有联系人导出为 CSV/vCard
list_contact_groups read 列出群组及成员数量
list_contact_group_members read 列出群组中的联系人
create_contact_group write 创建群组
update_contact_group write 重命名群组
delete_contact_group write 删除群组
add_contact_group_members write 向群组添加联系人
remove_contact_group_members write 从群组移除联系人

写入工具仍然需要消息令牌的写入权限范围。本地托管 MCP 的管理员还可以要求明确批准写入操作,使代理能够浏览联系人而不能进行更改。

相关文章

跳转到延续此工作流的邻近指南。

我们使用运行和保护 TrekMail 所必需的技术。确认后还会允许《Cookie 政策》中所述的有限分析和广告衡量。

登录 TrekMail

访问您的控制面板、邮箱和 DNS。

12 个字符 两次密码一致

重置邮件已发送

如果该邮箱对应已有账户,我们已发送密码重置说明。

继续即表示您同意 TrekMail 的 服务条款隐私政策.