How to get sender address in PST file without Outlook installed.

D

Dmitry Streblechenko

Do you mean on a machine with no Outlook installed? The bigger question is
then how do you read the PST file? You can't unless you hack the file
format.

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
 
K

KAKA

Yes. Without installed.
Or another way, get the sender address from PST without Outlook opened.
Thanks.
 
D

Dmitry Streblechenko

Outlook (or MAPI) is not installed is very different from "without launching
outlook.exe".
Which one is it?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
 
D

Dmitry Streblechenko

You can use either
1. Extended MAPI to either add a PST file to an existing profile or create a
new profile, add the "MSPST MS" service it to, configure it to use the PST
file in quesiton, and log to that profile using MAPILogonEx. C++/Delphi only
2. Outlook Object Model - use Namespace.AddStore to add a PST file to the
current profile. Note that even though using OOM launches outlook.exe, the
Outlook UI does not become visible unless the user has already launched it
or your code explciitly displays an inspector or an explorer.
3. Redemption - you can use RDOSession.Stores.AddPstStore. Next version of
Redemption (4.5) will also add RDOSession.LogonPstStore, which will create
(and delete) a temporary profile with the PST file if you do nto want thee
PST store to be visible in any of the existing profiles.

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
 
K

KAKA

Thanks very much. I am using Namespace.AddStore by vb script.
Still there is no a parameter to get the sender address of my own domain
users.
Only get the internet mail address(SMTP). I try to get the address by
internet head
, but there is no such internet head in domain emails.
Could you please give me an example? Thanks.
 
D

Dmitry Streblechenko

Do you mean you get the ugly EX address (which is normal) rather than SMTP
address from the MailItem.SenderEmailAddress property?
You will need Extended MAPI or Redemption to open the corresponding GAL user
and read the PR_SMTP_ADDRESS or rPR_EMS_AB_PROXY_ADDRESSES property.
Redemption also explicitly exposes it through the .Sender.SmtpAddress
property.

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
 
K

KAKA

Yes. objItems.SenderEmailAddress could not get the SMTP address of domain
users, only get the /O=TC ORGANIZATION/OU=CD ADMINISTRATIVE
GROUP/CN=RECIPIENTS/CN=Test_02, I need add the suffix of the address
(e-mail address removed).
I can get the smtp address which the email from Internet.
Is there a parameter to get the mail address directly?
I am using vbscript, or Do I need choose another language ?
 
D

Dmitry Streblechenko

The SMTP address is not stored directly in the message, you must retrieve it
from the corresponding GAL object.
In case of VB script, Redemption is your only option.
Otherwise Extended MAPI in C++ or Delphi is the only alternative.

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
 
K

KAKA

Thanks.
But how can I get the mail send time and recipients, still there is no
parameter to get.
Only get the received time.
 
D

Dmitry Streblechenko

ReceivedTime and SentOn properties should give wnat you need.
For the recipients, use tehe MailItem.Recipients collection.

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
 

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