使用OLE在Delphi中检索Outlook“收件箱”和“已发送”文件夹

时间:2011-02-16 21:47:18

标签: delphi com outlook ole

从Delphi中提取Outlook文件夹的最佳方法是什么?理想情况下,我想检索收件箱文件夹及其中的任何其他文件夹。我不要求电子邮件标题/消息纯粹是文件夹名称。

Delphi BDS 2006

1 个答案:

答案 0 :(得分:7)

有关Outlook的对象模型,请参阅here。下面显示收件箱中文件夹的名称:

procedure TForm1.Button1Click(Sender: TObject);
var
  Outlook, oNameSpace, Inbox: OleVariant;
  i: Integer;
begin
  try
    Outlook := GetActiveOleObject('Outlook.Application');
  except
    Outlook := CreateOleObject('Outlook.Application');
  end;
  oNameSpace := Outlook.GetNamespace('MAPI');
  oNameSpace.Logon('', '', False, False);   // not sure if this is necessary
  Inbox := oNameSpace.GetDefaultFolder(olFolderInbox);
  for i := 1 to Inbox.Folders.Count do
    ShowMessage(Inbox.Folders[i].Name);
end;