You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft Graph API将邮件移至已删除邮件文件夹的实现方法

将邮件移至已删除邮件文件夹的实现方法

你不需要使用DeleteAsync()(该方法会直接永久删除邮件),而是通过MoveAsync相关方法将邮件移动到「已删除邮件」文件夹,具体实现如下:

  1. 利用Graph API内置的WellKnownFolderName.DeletedItems枚举值,直接定位目标用户的「已删除邮件」文件夹,无需手动查询文件夹ID
  2. 对每封目标邮件调用移动接口,指定目标文件夹为已删除邮件文件夹

修改后的代码示例:

using Microsoft.Graph.Models;

// 直接使用枚举值定位已删除邮件文件夹
var deletedFolderIdentifier = WellKnownFolderName.DeletedItems.ToString();

foreach (Microsoft.Graph.Models.Message currMessage in emails)
{
    string msgId = currMessage.Id;
    string sender = currMessage.From.EmailAddress.Address;
    string subject = currMessage.Subject;
    string receivedDate = currMessage.ReceivedDateTime.Value.ToLocalTime().ToString("dd/MM/yyyy hh:mm tt");

    // 构造移动请求参数
    var moveRequest = new MovePostRequestBody
    {
        DestinationId = deletedFolderIdentifier
    };

    // 执行移动操作,将邮件移入已删除邮件文件夹
    await graphClient.Users[emailUser]
        .Messages[msgId]
        .Move
        .PostAsync(moveRequest);
}

补充说明

  • 该操作和手动在Outlook中删除邮件的行为完全一致,邮件会保留在已删除邮件文件夹中,可后续恢复
  • 若需要更灵活的文件夹定位,也可以先调用graphClient.Users[emailUser].MailFolders.Request().GetAsync()查询所有文件夹,筛选出「已删除邮件」文件夹的ID后使用

内容的提问来源于stack exchange,提问作者NootNoobJoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 11:49:52