Problem getting EntryID for attached e-mail in Outlook journal ite

  • Thread starter Thread starter Alex Ksendzov
  • Start date Start date
A

Alex Ksendzov

Using Redemption library I can iterate through the list of attachments for
every Journal Entry of ‘e-mail message’ type and get EntryId of the message
through the EmbeddedMsg property .
It works fine for (received) journal entries, but for (send) this property
is empty, also I am getting exception for some attachment items trying to get
mentioned above property (Run-time exception thrown :
System.Runtime.InteropServices.COMException - Error in
IMAPISession.OpenEntry: MAPI_E_NOT_FOUND). And attachment (e-mail message) is
not deleted I can get it double clicking on journal entry in Outlook.

The question is - Is there is a way to get EntryID of attached e-mails for
“sent†items in the journal?

Thanks
 
I am suprised it works at all - message attachments do not have entry ids
since theey only exist in the context of the parent messages.
--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
 
Thanks a lot for the reply Dmitry.
Now, as I guess, I can’t just get e-mail’s entryid’s from the journal
attachments, as these attachments exist in the context of the journal entry.

Then I have another question. I need to import outlook journal entries
(e-mails) into the ms crm. I am saving attachment (journals’ e-mail) with
“SaveAsFile†method for the entries of the “e-mail type†into the ‘msg’
file, but outlook fails to open this file. Can you advice me please - how can
I convert journal’s attachment to the regular outlook message?
Thank you very much again; I really appreciate your help.

Alex
 
Are you sure you have an embedded message? What is the value of the
PR_ATTACH_METHOD property on attachment?

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
 
Yes, you are right Dmitry, EbeddedMsg property is not supposed to work on the
attachments for journal entries (although it worked for received e-mail) as
PR_ATTACH_METHOD has value ATTACH_OLE value.
So actual attachment data are accessible through the PR_ATTACH_DATA_OBJ with
IStreamDoc interface, right?
Do you know - can I somehow accomplish it on VB .NET? Or can I somehow else
get attached e-mail from the journal entry?

Thank you,
Alex
 
Either IStreamDoc or IStorage, but neither is very useful standalone outside
of the parent message.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
 
Either IStreamDoc or IStorage, but neither is very useful standalone outside
of the parent message.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
 
Either IStreamDoc or IStorage, but neither is very useful standalone outside
of the parent message.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
 
Thanks for guidance Dmitry. As I understand I can't get journal's e-mail
attachments with managed code.
 
Thanks for guidance Dmitry, I appreciate any help on this topic. I have
problem getting attached e-mails (as msg files) on Journal entries of e-mail
type. Attached e-mails are represented in the Journal Entry in the collection
of attachments.

Using C++ I was able to save attachment of journal entry with e-mail -
loaded attachment from PR_ATTACH_DATA_OBJ with IStreamDocfile and wrote
stream to the file (PR_ATTACH_METHOD = ATTACH_OLE).
In the result I am getting some binary file – not message file. I am not
C++ programmer, but I suspect that result is correct as this file is pretty
similar to the one that I just can get with OOM attachment’s SafeAsText
method.
Among the literals in this file I see the following – MailMsgAttFld,
MailMsgAttMsg, MailMsgAttMdb

Browsing on the web I found next info:
MailMsgAttFld - The entry ID of the folder of the linked message object
MailMsgAttMdb - The entry ID of the store of the linked message object
MailMsgAttMsg - The entry ID of the linked message object; required only if
MailMsgAttSrchKey is empty

So if I understand right, Journal Attachments contains ‘links’ to the actual
messages.

The question is - Can I somehow with Redemption library or anyhow else get
MailMsgAttMsg (entry id of the linked message)?

Thank you for your help,
Alex
 
You can open the atatchment as IStore, and then read various streams
(IStorage::OpenStream).
What do you see in OutlookSpy when you select PR_ATTACH_DATA_OBJ, right
click, then select "IMAPIProp::OpenProperty", then IStorage?

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
 
Thank you Dmitry, I was able to read and save streams with IStorage. And for
the ‘received’ journal entries it works great – MailMsgAttMsg stream contains
entry id of the e-mail message.
But for the ‘sent’ items it’s empty – I can see this in OutlookSpy, and
‘MailMsgAttSrchFId’ stream is empty for the ‘received’ items in this case.

I see that ‘MailMsgAttSrchFId’ matching E-mail’s EntyID’s first n bytes
(depends on the length of value in this stream). I guess combination of
MailMsgAttSrchFld and MailMsgAttSrchKey should give me the EntryId of
attached e-mail, but I can’t find any patterns.

Thanks a lot again, OutlookSpy is really a great tool; I can’t imagine
programming using MAPI without it.
Alex
 
Back
Top