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

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
 
D

Dmitry Streblechenko

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
-
 
A

Alex Ksendzov

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
 
D

Dmitry Streblechenko

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
-
 
A

Alex Ksendzov

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
 
D

Dmitry Streblechenko

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
-
 
D

Dmitry Streblechenko

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
-
 
D

Dmitry Streblechenko

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
-
 
A

Alex Ksendzov

Thanks for guidance Dmitry. As I understand I can't get journal's e-mail
attachments with managed code.
 
A

Alex Ksendzov

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
 
D

Dmitry Streblechenko

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
-
 
A

Alex Ksendzov

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top