首页 > 解决方案 > 如何使用 Microsoft Graph v1.0 应用过滤器从 Outlook 获取过滤的电子邮件

问题描述

我正在尝试获取用户过滤的电子邮件列表。他们必须能够在多个选项之间进行选择,包括“发件人”和/或“收件人”电子邮件。当我使用两个 emailAddress 过滤器提交查询时,我收到以下错误:

RequestBroker--ParseUri:属性“emailAddress”的属性访问的父值不是单个值。属性访问只能应用于单个值。

我的代码(顺便说一句,角度)如下:

  try {    
    var fecha1 = new Date(req.body.fecha1);        
    var fecha2 = new Date(req.body.fecha2);        
    var fecha1 = fecha1.getFullYear() + "-" + fecha1.getMonth() + "-" + fecha1.getDate();
    var fecha2 = fecha2.getFullYear() + "-" + fecha2.getMonth() + "-" + fecha2.getDate();                

    var tipoFecha = (req.body.i_o == 1) ? "receivedDateTime" : "sentDateTime";

    var filtro = "startswith(subject, \'" + req.body.subject + "\') and " +
    "startswith(from/emailAddress/name,\'" + req.body.from + "\') or " + 
    "startswith(toRecipients/emailAddress/name,\'" + req.body.to + "\') and " + 
    tipoFecha + " ge " + fecha1 + " and " + 
    tipoFecha + " lt " + fecha2;

    let result = await client
    .api("/me/mailFolders/inbox/messages?filter=" + filtro)
    .select('id,subject,from,toRecipients,ccRecipients,bccRecipients,body,sentDateTime,receivedDateTime')
    .get();

    var emails = {
      estado: 1,
      descripcion: "ok",
      correos: result.value
    };

    res.json(emails);

 }

我的问题是,还有其他方法可以按两个电子邮件地址进行过滤吗?

标签: outlookmicrosoft-graph-api

解决方案


推荐阅读