如何利用Delphi的OLE功能高效查询Outlook收件箱及已发送邮件夹?
- 内容介绍
- 文章标签
- 相关推荐
本文共计395个文字,预计阅读时间需要2分钟。
从Delphi中提取Outlook文件夹的最佳方法是使用TOutlookBar组件。这种方法允许你直接访问Outlook的文件系统,包括邮箱、日历、联系人等。以下是一个简单的示例代码:
delphiuses OutlookBar, ShellAPI;
procedure TForm1.Button1Click;var OB: TOutlookBar; Folders: TOutlookBarFolders; i: Integer;begin OB :=TOutlookBar.Create(Self); try OB.Align :=alClient; OB.ShowCaption :=False; OB.ShowButtons :=False;
Folders :=OB.Folders; Folders.Clear;
// 添加邮箱文件夹 Folders.Add('Inbox', 'Inbox'); Folders.Add('Sent Items', 'Sent Items'); Folders.Add('Drafts', 'Drafts'); Folders.Add('Deleted Items', 'Deleted Items');
// 添加其他文件夹 for i :=0 to Folders.Count - 1 do begin Folders.Item[i].OnClick :=procedure begin ShellExecute(0, 'explore', PChar(Folders.Item[i].Caption), nil, nil, SW_SHOW); end; end;
finally OB.Free; end;end;
这段代码创建了一个TOutlookBar组件,并将其添加到表单上。然后,它添加了Outlook的几个常见文件夹,并为每个文件夹添加了一个点击事件,用于打开相应的文件夹。你可以根据需要添加更多文件夹。
请注意,这段代码仅适用于Windows操作系统,并且需要Outlook应用程序安装在你的系统上。
从Delphi中提取Outlook文件夹的最佳方法是什么?理想情况下,我想检索收件箱文件夹及其中的任何其他文件夹.我不要求电子邮件标题/消息纯粹是文件夹名称.德尔福BDS 2006
有关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;
本文共计395个文字,预计阅读时间需要2分钟。
从Delphi中提取Outlook文件夹的最佳方法是使用TOutlookBar组件。这种方法允许你直接访问Outlook的文件系统,包括邮箱、日历、联系人等。以下是一个简单的示例代码:
delphiuses OutlookBar, ShellAPI;
procedure TForm1.Button1Click;var OB: TOutlookBar; Folders: TOutlookBarFolders; i: Integer;begin OB :=TOutlookBar.Create(Self); try OB.Align :=alClient; OB.ShowCaption :=False; OB.ShowButtons :=False;
Folders :=OB.Folders; Folders.Clear;
// 添加邮箱文件夹 Folders.Add('Inbox', 'Inbox'); Folders.Add('Sent Items', 'Sent Items'); Folders.Add('Drafts', 'Drafts'); Folders.Add('Deleted Items', 'Deleted Items');
// 添加其他文件夹 for i :=0 to Folders.Count - 1 do begin Folders.Item[i].OnClick :=procedure begin ShellExecute(0, 'explore', PChar(Folders.Item[i].Caption), nil, nil, SW_SHOW); end; end;
finally OB.Free; end;end;
这段代码创建了一个TOutlookBar组件,并将其添加到表单上。然后,它添加了Outlook的几个常见文件夹,并为每个文件夹添加了一个点击事件,用于打开相应的文件夹。你可以根据需要添加更多文件夹。
请注意,这段代码仅适用于Windows操作系统,并且需要Outlook应用程序安装在你的系统上。
从Delphi中提取Outlook文件夹的最佳方法是什么?理想情况下,我想检索收件箱文件夹及其中的任何其他文件夹.我不要求电子邮件标题/消息纯粹是文件夹名称.德尔福BDS 2006
有关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;

