Delphi Outlook:获取未读电子邮件
我正在应用程序中使用Outlook。要获得未读邮件的数量,我使用“UnreadItemCount”。 要获得未读邮件的数量,我使用:Delphi Outlook:获取未读电子邮件,delphi,outlook,Delphi,Outlook,我正在应用程序中使用Outlook。要获得未读邮件的数量,我使用“UnreadItemCount”。 要获得未读邮件的数量,我使用: Inbox: MAPIFolder; NewMail: boolean; Item: TListItem; outlook, NameSpace , aMailItem : OLEVariant; i : integer; const olFolderInbox = $00000006; begin OutlookApplica
Inbox: MAPIFolder;
NewMail: boolean;
Item: TListItem;
outlook, NameSpace , aMailItem : OLEVariant;
i : integer;
const
olFolderInbox = $00000006;
begin
OutlookApplication1.CreateObject('Outlook.Application');
NmSpace := OutlookApplication1.GetNameSpace('MAPI');
NmSpace.Logon('', '', False, False);
Inbox := NmSpace.GetDefaultFolder(olFolderInbox);
NewMail := (Inbox.UnreadItemCount > 0);
ShowMessage('Number of unread emails: ' + inttostr(Inbox.UnreadItemCount));
我想要未读的电子邮件。也就是说,具有以下属性的电子邮件列表:未读或:未读=真请问有什么方法可以做到这一点吗?
感谢您的帮助调用
MAPIFolder.Items.Restrict
(返回项目集合),使用类似[Unread]=true的查询
到目前为止您自己做了什么?请出示你的密码。你到底被困在哪里?我使用了属性:InboxFolder.Items.Restrict(“[UnRead]=FALSE”),我想测试电子邮件是否已被阅读。如果已阅读,则会在ListView1中添加一条文本:“电子邮件已阅读”。这是我的代码:如果ItemsToProcess=InboxFolder.Items.Restrict('[UnRead]=FALSE'),那么开始MaListe:=ListView1.Items.Add;标题:=“邮件已读”;MaListe.SubItems.Add(ListView1.Items.Add.SubItems[3])代码>。问题是在ListView1中,没有添加文本(“电子邮件读取”)。请问我的错误是什么?我不确定代码是什么。您正在将Items对象与Restrict返回的全新Items对象进行比较。当然,这两者并不相同。但你为什么要这么做呢?我将在Outlook上首次亮相。现在对我来说有点难。我将首次使用Outlook。现在对我来说有点难。让我解释一下:我将Outlook中的电子邮件加载到TListView中,然后我想测试电子邮件是否已被阅读。如果已阅读,则会在列表视图1中添加一条文本:“电子邮件已阅读”列。请问,我该如何做我想做的事情?当您在items集合中循环时,请测试MailItem.Unread
属性。但是,由于您只请求未读电子邮件,该测试不会购买匹配的邮件-您已经知道未读属性的值。我修复了我的错误:InboxFolder.Items.Item(I)作为MailItem我纠正了两件不同的事情。谢谢你的帮助,德米特里