Skip to content

邮件模板管理 - 租户令牌(IFeishuTenantV1MailTemplate)

功能描述

飞书邮件模板API接口实现了更新、查询等邮件模板功能。支持租户管理员通过租户访问令牌管理企业内所有用户的邮件模板。

参考文档

函数列表

函数名称功能描述认证方式HTTP 方法
GetAttachmentsDownloadUrlAsync获取模板附件下载链接TenantAccessTokenGET
UpdateMailTemplateAsync更新邮件模板TenantAccessTokenPUT
GetMailTemplateListAsync列出邮件模板TenantAccessTokenGET
GetMailTemplateAsync获取邮件模板TenantAccessTokenGET
CreateMailTemplateAsync创建邮件模板TenantAccessTokenPOST
DeleteMailTemplateAsync删除邮件模板TenantAccessTokenDELETE
GetSendAsUserMailboxSettingAsync列出可发信邮箱TenantAccessTokenGET

函数详细内容

GetAttachmentsDownloadUrlAsync

获取模板附件下载链接

函数签名

csharp
Task<FeishuApiResult<GetAttachmentsDownloadUrlResult>?> GetAttachmentsDownloadUrlAsync(
    [Path] string user_mailbox_id,
    [Path] string template_id,
    [Query] string[] attachment_ids,
    CancellationToken cancellationToken = default);

认证 TenantsAccessToken(租户访问令牌)

参数

参数名类型必填描述示例
user_mailbox_idstring用户邮箱地址,作为用户邮箱身份标识。使用 user_access_token 调用时,可使用占位符 me 表示当前授权用户的主邮箱。user@example.com
template_idstring邮件模板 ID。可通过列出个人邮件模板接口或创建个人邮件模板接口的返回值获取。7281187859195772947
attachment_idsstring[]待获取下载链接的附件 ID 列表。可通过获取个人邮件模板详情接口返回的 attachments 字段中的 id 获取。-
cancellationTokenCancellationToken取消操作令牌对象default

响应

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "attachments": [
      {
        "attachment_id": "att_001",
        "download_url": "https://example.com/download/att_001",
        "expire_time": "2026-06-03T12:00:00+08:00"
      }
    ]
  }
}

说明

  • 获取指定邮件模板下的附件下载链接
  • 用于在已知模板 ID 与附件 ID 的场景下,二次获取附件的有效访问 URL
  • 便于在用户端预览或下载邮件模板中的附件资源

代码示例

csharp
var templateApi = feishuApp.GetApi<IFeishuTenantV1MailTemplate>();
var attachmentIds = new string[] { "att_001", "att_002" };
var result = await templateApi.GetAttachmentsDownloadUrlAsync(
    "user@example.com",
    "7281187859195772947",
    attachmentIds);
if (result?.Data?.Attachments != null)
{
    foreach (var att in result.Data.Attachments)
    {
        Console.WriteLine($"附件 {att.AttachmentId} 下载链接: {att.DownloadUrl}");
    }
}

UpdateMailTemplateAsync

更新邮件模板

函数签名

csharp
Task<FeishuApiResult<UpdateMailTemplateResult>?> UpdateMailTemplateAsync(
    [Path] string user_mailbox_id,
    [Path] string template_id,
    [Body] UpdateMailTemplateRequest updateMailTemplateRequest,
    CancellationToken cancellationToken = default);

认证 TenantsAccessToken(租户访问令牌)

参数

参数名类型必填描述示例
user_mailbox_idstring用户邮箱地址,作为用户邮箱身份标识。使用 user_access_token 调用时,可使用占位符 me 表示当前授权用户的主邮箱。user@example.com
template_idstring邮件模板 ID。可通过列出个人邮件模板接口或创建个人邮件模板接口的返回值获取。7281187859195772947
updateMailTemplateRequestUpdateMailTemplateRequest更新邮件模板请求对象,包含待更新的邮件模板信息。-
cancellationTokenCancellationToken取消操作令牌对象default

响应

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "template_id": "7281187859195772947",
    "name": "更新后的模板名称",
    "update_time": "2026-06-03T11:50:00+08:00"
  }
}

说明

  • 以全量替换的方式更新指定邮件模板的所有字段(包括名称、主题、正文、附件、收件信息等)
  • 本接口为「全量更新」语义:请求时需传入完整的模板对象,未携带的字段将被清空
  • 使用 tenant_access_token 时,需要申请邮件模板资源的数据权限

代码示例

csharp
var templateApi = feishuApp.GetApi<IFeishuTenantV1MailTemplate>();
var request = new UpdateMailTemplateRequest
{
    Name = "更新后的模板名称",
    Subject = "更新后的邮件主题",
    Body = "更新后的邮件正文"
};
var result = await templateApi.UpdateMailTemplateAsync(
    "user@example.com",
    "7281187859195772947",
    request);
Console.WriteLine($"模板更新成功: {result?.Data?.Name}");

GetMailTemplateListAsync

列出邮件模板

函数签名

csharp
Task<FeishuApiResult<GetMailTemplateListResult>?> GetMailTemplateListAsync(
    [Path] string user_mailbox_id,
    CancellationToken cancellationToken = default);

认证 TenantsAccessToken(租户访问令牌)

参数

参数名类型必填描述示例
user_mailbox_idstring用户邮箱地址,作为用户邮箱身份标识。使用 user_access_token 调用时,可使用占位符 me 表示当前授权用户的主邮箱。user@example.com
cancellationTokenCancellationToken取消操作令牌对象default

响应

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "items": [
      {
        "template_id": "7281187859195772947",
        "name": "模板1",
        "create_time": "2026-06-03T11:50:00+08:00"
      }
    ]
  }
}

说明

  • 列出指定用户邮箱下的全部个人邮件模板基本信息(一次性返回,不分页)
  • 常用于在编辑或发送邮件场景下展示可选模板列表
  • 如需获取模板正文与附件等完整字段,请通过获取个人邮件模板详情接口按 template_id 查询
  • 使用 tenant_access_token 时,需要申请邮件模板资源的数据权限

代码示例

csharp
var templateApi = feishuApp.GetApi<IFeishuTenantV1MailTemplate>();
var result = await templateApi.GetMailTemplateListAsync("user@example.com");
if (result?.Data?.Items != null)
{
    foreach (var template in result.Data.Items)
    {
        Console.WriteLine($"模板: {template.Name} (ID: {template.TemplateId})");
    }
}

GetMailTemplateAsync

获取邮件模板

函数签名

csharp
Task<FeishuApiResult<GetMailTemplateResult>?> GetMailTemplateAsync(
    [Path] string user_mailbox_id,
    [Path] string template_id,
    CancellationToken cancellationToken = default);

认证 TenantsAccessToken(租户访问令牌)

参数

参数名类型必填描述示例
user_mailbox_idstring用户邮箱地址,作为用户邮箱身份标识。使用 user_access_token 调用时,可使用占位符 me 表示当前授权用户的主邮箱。user@example.com
template_idstring邮件模板 ID。可通过列出个人邮件模板接口或创建个人邮件模板接口的返回值获取。7281187859195772947
cancellationTokenCancellationToken取消操作令牌对象default

响应

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "template_id": "7281187859195772947",
    "name": "模板名称",
    "subject": "邮件主题",
    "body": "邮件正文",
    "to_recipients": ["recipient@example.com"],
    "create_time": "2026-06-03T11:50:00+08:00",
    "update_time": "2026-06-03T11:50:00+08:00"
  }
}

说明

  • 获取指定邮件模板的完整详情,包括模板名称、主题、正文(HTML 或纯文本)、收件人/抄送/密送地址、附件信息等所有字段
  • 常用于编辑模板前回填表单,或在发送邮件场景下读取模板内容做二次填充
  • 使用 tenant_access_token 时,需要申请邮件模板资源的数据权限

代码示例

csharp
var templateApi = feishuApp.GetApi<IFeishuTenantV1MailTemplate>();
var result = await templateApi.GetMailTemplateAsync(
    "user@example.com",
    "7281187859195772947");
Console.WriteLine($"模板名称: {result?.Data?.Name}");
Console.WriteLine($"主题: {result?.Data?.Subject}");
Console.WriteLine($"正文: {result?.Data?.Body}");

CreateMailTemplateAsync

创建邮件模板

函数签名

csharp
Task<FeishuApiResult<CreateMailTemplateResult>?> CreateMailTemplateAsync(
    [Path] string user_mailbox_id,
    [Body] CreateMailTemplateRequest createMailTemplateRequest,
    CancellationToken cancellationToken = default);

认证 TenantsAccessToken(租户访问令牌)

参数

参数名类型必填描述示例
user_mailbox_idstring用户邮箱地址,作为用户邮箱身份标识。使用 user_access_token 调用时,可使用占位符 me 表示当前授权用户的主邮箱。user@example.com
createMailTemplateRequestCreateMailTemplateRequest创建邮件模板请求体-
cancellationTokenCancellationToken取消操作令牌对象default

响应

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "template_id": "7281187859195772947",
    "name": "新模板",
    "subject": "邮件主题",
    "body": "邮件正文",
    "create_time": "2026-06-03T11:50:00+08:00"
  }
}

说明

  • 在指定用户邮箱下创建一份可复用的个人邮件模板
  • 请求时需传入完整的模板对象(含名称、主题、正文、收件信息、附件等)
  • 创建成功后返回完整模板内容(含系统生成的 template_id)
  • 适用于将常用邮件内容沉淀为模板以便后续快速发送同类型邮件
  • 使用 tenant_access_token 时,需要申请邮件模板资源的数据权限

代码示例

csharp
var templateApi = feishuApp.GetApi<IFeishuTenantV1MailTemplate>();
var request = new CreateMailTemplateRequest
{
    Name = "新模板",
    Subject = "邮件主题",
    Body = "邮件正文",
    ToRecipients = new List<string> { "recipient@example.com" }
};
var result = await templateApi.CreateMailTemplateAsync("user@example.com", request);
Console.WriteLine($"模板创建成功: {result?.Data?.TemplateId}");

DeleteMailTemplateAsync

删除邮件模板

函数签名

csharp
Task<FeishuNullDataApiResult?> DeleteMailTemplateAsync(
    [Path] string user_mailbox_id,
    [Path] string template_id,
    CancellationToken cancellationToken = default);

认证 TenantsAccessToken(租户访问令牌)

参数

参数名类型必填描述示例
user_mailbox_idstring用户邮箱地址,作为用户邮箱身份标识。使用 user_access_token 调用时,可使用占位符 me 表示当前授权用户的主邮箱。user@example.com
template_idstring邮件模板 ID。可通过列出个人邮件模板接口或创建个人邮件模板接口的返回值获取。7281187859195772947
cancellationTokenCancellationToken取消操作令牌对象default

响应

json
{
  "code": 0,
  "msg": "success",
  "data": null
}

说明

  • 永久删除指定用户邮箱下的某个个人邮件模板
  • 删除操作不可恢复
  • 删除后该模板将无法在「列出邮件模板」「获取邮件模板」等接口中再返回
  • 常用于清理已废弃或不再使用的模板
  • 使用 tenant_access_token 时,需要申请邮件模板资源的数据权限

代码示例

csharp
var templateApi = feishuApp.GetApi<IFeishuTenantV1MailTemplate>();
var result = await templateApi.DeleteMailTemplateAsync(
    "user@example.com",
    "7281187859195772947");
Console.WriteLine($"模板删除结果: {result.Code == 0}");

GetSendAsUserMailboxSettingAsync

列出可发信邮箱

函数签名

csharp
Task<FeishuApiResult<GetSendAsUserMailboxSettingResult>?> GetSendAsUserMailboxSettingAsync(
    [Path] string user_mailbox_id,
    CancellationToken cancellationToken = default);

认证 TenantsAccessToken(租户访问令牌)

参数

参数名类型必填描述示例
user_mailbox_idstring用户邮箱地址,作为用户邮箱身份标识。使用 user_access_token 调用时,可使用占位符 me 表示当前授权用户的主邮箱。user@example.com
cancellationTokenCancellationToken取消操作令牌对象default

响应

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "send_as_addresses": [
      {
        "email": "user@example.com",
        "name": "用户姓名",
        "is_default": true
      },
      {
        "email": "alias@example.com",
        "name": "别名邮箱",
        "is_default": false
      }
    ]
  }
}

说明

  • 获取当前地址的可用于发信的邮箱地址列表
  • 包括主邮箱、别名邮箱、公共邮箱等可发信地址
  • 使用 tenant_access_token 时,需要申请邮箱设置资源的数据权限

代码示例

csharp
var templateApi = feishuApp.GetApi<IFeishuTenantV1MailTemplate>();
var result = await templateApi.GetSendAsUserMailboxSettingAsync("user@example.com");
if (result?.Data?.SendAsAddresses != null)
{
    foreach (var addr in result.Data.SendAsAddresses)
    {
        Console.WriteLine($"可发信邮箱: {addr.Email} (默认: {addr.IsDefault})");
    }
}