1

CreationDateTime、SentDateTime などを変更することはできますか????

メッセージを作成/更新しようとしています。すべて正常に実行されますが、フィールド ItemType.CreateDateTime を自分の値で設定する必要があります (たとえば、今日ではなく年エゴの作成時間を持つメッセージを作成する必要があります)。次のコードがあります:

//Update created item
            ItemIdType itemId = new ItemIdType();
            itemId.Id = savedMessageId;
            itemId.ChangeKey = savedMessageChangeKey;

            ItemType setCreateDT = new ItemType();
            setCreateDT.DateTimeCreated = new System.DateTime(2000, 10, 10, 12, 12, 12);
            setCreateDT.DateTimeCreatedSpecified = true;

            SetItemFieldType setItemField = new SetItemFieldType();
            setItemField.Item = new PathToUnindexedFieldType();
            (setItemField.Item as PathToUnindexedFieldType).FieldURI = UnindexedFieldURIType.itemDateTimeCreated;
            setItemField.Item1 = setCreateDT;

            UpdateItemType request = new UpdateItemType();
            request.ItemChanges = new ItemChangeType[1] { new ItemChangeType() };
            request.ItemChanges[0].Item = itemId;
            request.ItemChanges[0].Updates = new ItemChangeDescriptionType[1];
            request.ItemChanges[0].Updates[0] = setItemField;
            request.MessageDisposition = MessageDispositionType.SaveOnly;
            request.MessageDispositionSpecified = true;

            UpdateItemResponseType updateItemResponse = m_mailbox.UpdateItem(request);

そのリクエストはエラーを返します:「プロパティの設定アクションは無効です。」

件名を変更しようとすると、すべて問題なく実行されます。

[更新] 次の解決策を見つけましたが、うまくいきません。拡張プロパティとその ID を使用しています。

PathToExtendedFieldType q = new PathToExtendedFieldType();
        q.PropertyId = 3590; //DeliveryTime
        q.PropertyType = MapiPropertyTypeType.SystemTime;
        q.PropertyIdSpecified = true;
        newItem.ExtendedProperty[0] = new ExtendedPropertyType();
        newItem.ExtendedProperty[0].ExtendedFieldURI = q;
        newItem.ExtendedProperty[0].ExtendedFieldURI.DistinguishedPropertySetIdSpecified = true;
        newItem.ExtendedProperty[0].Item = new System.DateTime(2013, 5, 5, 5, 5, 5).ToString("yyyy-MM-ddTHH:mm:ssZ");

...

CreateItemResponseType createItemResponse = m_mailbox.CreateItem(createItemType);

正常に動作しますが、変更は見られません..

4

1 に答える 1

1

2 番目の解決策は正しいですが、いくつかの間違いがあります。1) PropertyTag でプロパティへのアクセスを取得することをお勧めします。2) PropertyTag と PropertyType のみを設定する必要があります。

作業コードは次のとおりです。

ItemType newItem = xmlParser.LoadItem(); //info for newItem takes from xml
        newItem.ExtendedProperty = new ExtendedPropertyType[1];
        PathToExtendedFieldType q = new PathToExtendedFieldType();
        q.PropertyTag = "3590"; //DeliveryTime
        q.PropertyType = MapiPropertyTypeType.SystemTime;
        newItem.ExtendedProperty[0] = new ExtendedPropertyType();
        newItem.ExtendedProperty[0].ExtendedFieldURI = q;
        newItem.ExtendedProperty[0].Item = new System.DateTime(2014, 5, 5, 5, 5, 5).ToString("yyyy-MM-ddTHH:mm:ssZ");
于 2013-05-20T11:43:01.683 に答える