Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 177
  • Last Modified:

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
 


0
Laci030999
Asked:
Laci030999
1 Solution
 
AvonWyssCommented:
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).
0
 
AvonWyssCommented:
Just found the following link, which has extensive information on exactly this topic:
http://www.djpate.freeserve.co.uk/AutoOutl.htm
0
 
ginsonicCommented:
listening
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
rskathaitCommented:
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;

0
 
AvonWyssCommented:
Laci, some feedback would be appreciated... thanks!
0
 
Laci030999Author Commented:
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
0
 
Laci030999Author Commented:
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
0
 
AvonWyssCommented:
Laci, good to know that you're back. Hope you had a good trip. We are looking forward to your comments.
0
 
Laci030999Author Commented:
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
0
 
AvonWyssCommented:
Thanks for coming back! Have a nice day.
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now