Link to home
Start Free TrialLog in
Avatar of Laci030999
Laci030999

asked on

Using Outlook components

Hi,

I would like to do a couple of tasks in Outlook which are very simple when I use the program myself, but I would like to do them from a Delphi app:

starting / closing Outlook

managing mails
  getting the content of the mail folders,
  getting a list of new mails,
  opening an e-mail,
  cheking for attachment,
  getting the content of attachment files,
  changing a mail's state,
  sending an e-mail with attachment,
 
managing the addressbook
  reading / changnig
  adding a new contact

Any help is appreciated, (it is kind of urgent, examples are some of the most useful ways of help :)))

Regards, Laci
 


Avatar of AvonWyss
AvonWyss
Flag of Switzerland image

You will need to use the Outlook COM object fot that. For instance, retrieving the address book would be like this:

uses
  ComObj;

var
  Outlook, NameSpace, AddressList, AddressEntries: OLEVariant;
  i: Integer;
begin
  Outlook := CreateOleObject('Outlook.Application');
  NameSpace := Outlook.GetNameSpace('MAPI');
  AddressList := NameSpace.AddressLists('Personal Address Book');
  AddressEntries := AddressList.AddressEntries;
  for i := 0 to AddressEntries.Count - 1 do
    Memo1.Lines.Add(AddressEntries.Item(i).name + ' (' + AddressEntries.Item(i).Address + ')');
end;

For an object reference, look in the Outlook help file under VB (the COM objects are language-independent).
ASKER CERTIFIED SOLUTION
Avatar of AvonWyss
AvonWyss
Flag of Switzerland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
listening
Avatar of rskathait
rskathait

Hi,
Here is the code I am using. In this code you have access to Outlook Object and one MailItem Object. In the same manner you can manupulate any object inside Outlook.

You can see the outlook object model at:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/modcore/html/deovrunderstandingvbainoutlook.asp

I took help from this thread:
http://groups.google.com/groups?q=Delphi+Outlook+Object&hl=en&lr=&ie=UTF8&oe=UTF8&selm=7g7hpg%24lvc12%40forums.borland.com&rnum=2

http://www.dimastr.com/ gives lot of information to maupulate Outlook. Especially http://www.dimastr.com/babelfish/ is cool.


Regards,
rsk

uses
  ShellAPI, ComObj ;

procedure TForm2.edtOutlookDblClick(Sender: TObject);
var
  lobjOutLook, lobjMailItem: Variant ;
  lblnCreated : Boolean;
begin
  try
    try
      lobjOutLook := GetActiveOleObject('Outlook.Application');
      lblnCreated := False;
    except
      lobjOutLook := CreateOleObject('Outlook.Application');
      lblnCreated := True;
    end;
  except
    Exit;
  end;

  try
    try
      lobjMailItem := lobjOutlook.CreateItem(0);
      lobjMailItem.To := edtOutlook.Text;
      lobjMailItem.Display(True);
    except
      Exit;
    end;
  finally
    lobjMailItem := Unassigned;
    if lblnCreated = True then
      lobjOutlook.Quit;;
    lobjOutLook := Unassigned;
  end;
end;

Laci, some feedback would be appreciated... thanks!
Avatar of Laci030999

ASKER

Hi Experts,

I had go for an unexpected trip, din't even have the time to 'say goodbye' ... I appologize. Now I'm catching up with my work & evaluating the info you provided.

Appreciate your help, I'll be back when I'm through.

Best regards, Laci
Hi Experts,

I had go for an unexpected trip, din't even have the time to 'say goodbye' ... I appologize. Now I'm catching up with my work & evaluating the info you provided.

Appreciate your help, I'll be back when I'm through.

Best regards, Laci
Laci, good to know that you're back. Hope you had a good trip. We are looking forward to your comments.
Oooops! Experts, I'm sorry! I have forgotten to close this Q. The Information I needed was provided by AvonWyss.

Thanx for Your Help!

Laci
Thanks for coming back! Have a nice day.