我这里有一个程序,它通过Outlook的“已发送邮件”文件夹中的每封电子邮件进行搜索,直到找到指定电子邮件中的标记(URL),打开它并发送回复。
但是我在“已发送邮件”文件夹中有很多电子邮件,因此通过每封电子邮件搜索都需要花费很多时间。
我已经读过AdvancedSearch方法是搜索特定电子邮件的更快捷方式。但我真的不知道它是如何运作的,这就是为什么我需要你帮助的人。
如何在此类程序中使用AdvancedSearch方法?
感谢你的帮助。
Set olApp = New Outlook.Application
Set olNameSpace = olApp.GetNamespace("MAPI")
Set olFolder = olNameSpace.GetDefaultFolder(olFolderSentMail)
For Each olMail In olFolder.Items
tagLink = Sheets("Data").Cells(rowCount, 6)
If InStr(olMail.HTMLBody, tagLink) <> 0 Then
With olMail.Reply
.Display
.To = sMailTo
.CC = sMailCC
.HTMLBody = mailBody & vbLf & .HTMLBody
.Send
End With
End If
Next olMail
答案 0 :(得分:0)
对于olFolder.Items中的每个olMail
不要迭代文件夹中的所有项目。特别是如果你在文件夹中有大量的项目。
相反,您可以考虑使用Items类的Restrict或Find / FindNext方法。您可以在以下文章中找到它们的深入描述:
当然,您可以考虑使用Application类的Workbook workbook = WorkbookFactory.create(yourFile.getInputstream());
Sheet sheet = workbook.getSheet(0);//1,2,3
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
row.getCell(0);
row.getCell(1);
}
方法。使用此方法的主要好处是能够在后台运行搜索并搜索不同/多个文件夹中的项目。阅读Advanced search in Outlook programmatically: C#, VB.NET文章中有关所有好处的详情。
最后,您可能会发现Getting Started with VBA in Outlook 2010文章很有帮助。