AddDefault Outlook Profile's SMTP Address
uses ..., Outlook2000, MAPIDefs, MAPIUtil;
 
var
  pmOutlook:     _Application;
  NameSpace:     _NameSpace;
  DefaultUser:   Recipient;
  _AddressEntry: AddressEntry;
  pProp:         PSPropValue;
  MP:            IMAPIProp;
  strAddress:    String;
begin
  try
    pmOutlook    := GetActiveOleObject('outlook.application') as _Application;
  except
    try
      pmOutlook  := CreateOleObject('outlook.application') as _Application;
    except
      on e:EOleSysError do
        ShowMessage('Cannot Load Outlook:' + E.Message);
    end;
  end;
  try
    Namespace   := pmOutlook.GetNamespace('MAPI');
    MAPIInitialize(nil);
    try
      DefaultUser := NameSpace.CurrentUser;
      if DefaultUser.Address <> '' then
      begin
        _AddressEntry := DefaultUser.AddressEntry;
        MP:= IUnknown(_AddressEntry.MAPIOBJECT) as IMailUser;
        if S_OK = HrGetOneProp(MP, $39FE001E, pProp) then
        begin
          strAddress:=pProp.Value.lpszA;
          MAPIFreeBuffer(pProp);
        end;
        ListBox1.Items.Add(_AddressEntry.Name + ' : ' +  strAddress);
        Application.ProcessMessages;
      end; {if}
    finally
      MAPIUninitialize;
    end;
  finally
    pmOutlook.Application.Quit;
    pmOutlook     := Unassigned;
    Namespace     := Unassigned;
    DefaultUser   := Unassigned;
    _AddressEntry := Unassigned;
  end;
end;

  • Author:
  • Date added:
    29 June, 2009
  • Views:
    7121
Latest News
Submit News Form Past News
Latest Forum Entries