Fetch mail and/or mail EntryID via EV SDK
A .NET-addin processes eMail items in Outlook 2007/2010 (save to disk etc). By using the EntryID in the mail item we can have a common reference between different eMail-accounts.
Problem: When item is in Enterprise Vault we need to be able to do 2 things:
1. Fetch the whole mail item and save it to disk as a complete MSG with all information in it (not only references).
2. Fetch the EntryID of a mail item that is in EV.
Now, as I understand it - in order to get the EV SDK one needs to buy the product which is fine BUT I don't wanna buy the product and then find out that it wasn't possible. I've tried searching on the forums and found this: http://www.symantec.com/connect/forums/apisdk-ev and it didn't direacly answer my question.
If someone could be so kind and verify 1. and 2. it would be really helpful or just point me to some sort of documentation around the SDK.
Kind regards
Andreas Mäkitalo
Addovation AS
Comments 7 Comments • Jump to latest comment
Let me see if our API-guy knows the answer off the top of his head.
Many Thanks,
Rob
www.quadrotech-it.com - All your EV Tools
PS I hope that the post proves helpful.
Hi Addovation,
I dont quite understand what you want here? but let me see if this helps....
1) Yes you can fetch the whole item using the API and store it as the original. You dont necceserly need to use the API, you can also use download.asp which does not require an extra licence.
Here is a bit of VBScript to accomplish this.
On Error Resume Next Dim ContentManagementAPI Set ContentManagementAPI = CreateObject("EnterpriseVault.ContentManagementAPI") 'load routine Sub window_onload window.resizeTo 555,250 End Sub Sub Submit Dim item set item = ContentManagementAPI.Item On Error Resume Next dim CurAction CurAction = "Recombining saveset into MSG" item.ArchiveId = ArchiveId.value item.Id = Id.value item.Content.Data = Content.value item.Get(3) Message.innerHTML = "<font color=""green""> Complete</font>" if (err.number <> 0) then Message.innerHTML = "<font color=""red""><b>Faild! </b>- </font>" & hex(Err.number) msgbox "Description: " & Err.Description & Err.Description, vbOkOnly + vbcritical, CurAction 'msgbox "Reason: " & hex(Err.number) & vbcrlf & "Description: " & Err.Description, vbOkOnly + vbcritical, CurAction err.clear end if End SubOr if you wish not to use the API you could use this - http://evserver.domain.com/EnterpriseVault/download.asp?VaultID=104DECBD137C7FF44931F0E349C55B32D1110000archive&SaveSetID=201011301136579~201011161559170000~Z~B079858F3C369DA074F4419186262D51&FormatType=Unicode&Client=ClientName&Format=MSG
To retrve an item from Enterprise Vault you will need to look for all IPM.Note.EnterpriseVault.Shortcut PR_MESSAGE_CLASS_W and extract two MAPI Properties (Archive ID and Saveset ID) from the message.
Archive ID
www.quadrotech-it.com - All your EV Tools
If I am able from a c#/.NET application/Office Outlook addin via the EV SDK to fetch the "whole item" and all it's properties i'm happy with that. The main reason for investigating this issue is that I was unable to fetch the EntryID of all the mailitem's that is stored in Enterprise Vault which is a key in the design of the application.
May I ask if there is any chance of getting hold of the SDK documentation before purchasing the product in order to see what possibilities we have of using the SDK API's?
Kind regards
Andreas
No, there is no chance that you will get the SDK API without becoming a step partner.
There is no such thing as the EntryID, maybe I am miss understaning your question because when I read your second post it sounds like you trying to do something else.
Using the ECM API you cannot fetch a list of all itemes sotred in an archive. Explane more what you are trying to acomplish.
www.quadrotech-it.com - All your EV Tools
ok, Outlook mail items have a global unique identifier (EntryID) that is being used to, for instance, to identify chains of messages (in order to oragnize conversations). If I send a mail to both person A and person B the mail can then be identified by this ID in both person A and B's inboxes. This ID is not a part of mail items that has been stored in EV (it is removed or set to null at least) thus my dilemma.
If person A checks in the mail (in a document management system) we store the EntryID as a part of the mail in order to identify it from person B's Outlook client. Person B can then optionally check all of his/hers mail items and we can mark it as already checked in to the document management system.
So the algorithm i'm looking for would then be:
1. Process all messages in Outlook that is stored in EV.
2. Somehow retrieve the "original mail item" (in order to fetch the EntryID).
3. If the mail exists in the document management system, mark it as already checked in (by putting a category flag on it).
Will the SDK let me do this?
cool, roger that....
*G* recall every message from EV? ouch.... that is going to hurt...
but simple answer would be yes/no :) the esiest way to do this is to query SQL to get a list of all archives and the saveset accosiated with it, from there you can then use the api to fetch each item.
I would think you might want to consider your algorithm thou as it might kill the Enterprise Vault servers :)
www.quadrotech-it.com - All your EV Tools
True, but at least it is possible. Just need to adjust the design "little" bit. Now I'm off to finding out how to be a STEP-partner.
Thanks for extremely fast respons and alot of competency directly from the start of the thread.
Case solved, dismisssed and closed.
Would you like to reply?
Login or Register to post your comment.