如何通过编程方式获取Microsoft 365 Outlook邮件模板列表及内容?
获取Microsoft 365 Outlook邮件模板的可行方案
一、个人用户「我的模板(My Templates)」
这类模板存储在用户Exchange邮箱的隐藏系统文件夹中,可通过Microsoft Graph API直接访问:
- 定位目标文件夹
调用GET /me/mailFolders?$select=id,displayName,folderClass(针对特定用户替换为/users/{user-id}/mailFolders?$select=id,displayName,folderClass),筛选出folderClass为IPM.Configuration.Template.Message的文件夹(部分环境下displayName显示为Templates)。
- 定位目标文件夹
- 获取模板内容
拿到文件夹ID后,调用GET /me/mailFolders/{folder-id}/messages,返回的每条message对象即为一个邮件模板:
subject对应模板标题body.content对应模板正文- 此类模板的
isDraft属性为true,folderClass为IPM.Configuration.Template.Message
- 获取模板内容
二、组织级全局邮件模板
方式1:Exchange Online PowerShell
使用非弃用的Exchange Online模块命令直接获取:
# 先定位组织模板存储的公共文件夹 Get-EXOMailFolder -Identity "Public Folders\Organization Templates" -Recurse # 获取模板内容 Get-EXOMailFolder -Identity "{folder-id}" | Get-EXOMessage
方式2:Microsoft Graph API
调用GET /organization/{org-id}/settings/mail,读取customMailTemplates字段,该字段存储组织配置的全局邮件模板。
权限要求
- 个人模板:需
Mail.Read或Mail.ReadWrite权限(委托/应用权限均可) - 组织模板:需
Organization.Read.All或Organization.ReadWrite.All应用权限
关键注意事项
- 必须使用Microsoft Graph API的v1.0或beta版本(v1.0已支持核心功能,beta版可获取更多元数据)
- 隐藏文件夹默认不显示在常规
mailFolders列表中,需通过$select参数显式请求folderClass字段才能筛选
内容的提问来源于stack exchange,提问作者Bohdan
相关产品推荐
相关产品推荐

