如何从交换

时间:2018-06-13 22:57:43

标签: outlook ms-office office365 exchangewebservices ewsjavaapi

我们已经使用电子邮件创建了extendedProperties     val uId = getUniqueId();

val emailExtendedPropDef = new ExtendedPropertyDefinition(uId,"uniqueId", MapiPropertyType.String)
    try {
      email.setExtendedProperty(emailExtendedPropDef, uId.toString)
      email.sendAndSaveCopy()
    } catch {
      case e: Exception =>
        error(s"Exception in setting extended property for user $from", e)
        throw e
    }

现在我们要迭代发送文件夹中的电子邮件,然后查看已设置的电子邮件的extendedProperties

val view = new ItemView(1000)
    var extendedPropertyIndex = 0
    var bodyList = new ListBuffer[String]()
    val propertySet = new PropertySet(BasePropertySet.FirstClassProperties

    try {
      val findResults = service.findItems(WellKnownFolderName.SentItems, view)
      if (findResults.getTotalCount > 0) {
        val iterator = findResults.getItems().iterator()

        while(iterator.hasNext) {

          val item = iterator.next()

          val extendedPropertyCollection = item.getExtendedProperties()

          println("count is "+extendedPropertyCollection.getCount())
          if (extendedPropertyCollection.getCount() > 0)
          {
               //do some processing

          }
       }
     }
    } 

我们能够成功检索项目,但不能检索其扩展属性,不确定原因

我们已将计数视为 0 ,尽管我们知道这些项目,但我们已使用上述逻辑设置了extendedProperty ......

如果有人可以指出我们为什么我们收到扩展属性的0计数,并且我们的要求是使用extendedProperties set <检索所有电子邮件,那将是非常有帮助的。 / p>

更新:尝试使用这些选项

val emailIdPropDef = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings,"uniqueId", MapiPropertyType.String)
    val propertySet = new PropertySet(BasePropertySet.FirstClassProperties, emailIdPropDef)


    view.setPropertySet(propertySet)

但是仍然没有运气任何正确方向的指针都会有很大的帮助

1 个答案:

答案 0 :(得分:0)

Exchange只会返回您请求返回的扩展属性。因此,您需要将扩展​​属性添加到您在FindItems操作中使用的PropertySet中,如果已在FindItem返回的任何对象上设置它,则会返回该属性。此属性

val emailExtendedPropDef = new ExtendedPropertyDefinition(uId,"uniqueId", MapiPropertyType.String)

需要添加到此Propertyset

val propertySet = new PropertySet(BasePropertySet.FirstClassProperties)

并且该属性集应该在此ItemView上使用

val view = new ItemView(1000)
val.PropertySet = propertySet