我的任务是创建一个用于管理邮箱警报的加载项。本质上,加载项需要不断扫描收件箱,并且在一段时间内一旦收到一定数量的电子邮件,则需要将电子邮件发送到另一个收件箱。
有人可以给我一些从哪里开始的指针吗?
如果您有其他建议,我愿意向他们提出建议,例如创建宏。无论哪个看起来更简单,更有效。
答案 0 :(得分:0)
几年前,我有一个带有Outlook VSTO插件的项目。应该可以在Addin的PageLoad事件中编写此代码。
这是一个默认文件夹的循环日历日历示例-循环邮件是类似的:
Microsoft.Office.Interop.Outlook.Application oApp = null;
Microsoft.Office.Interop.Outlook.NameSpace mapiNamespace = null;
Microsoft.Office.Interop.Outlook.MAPIFolder calendarFolder = null;
Microsoft.Office.Interop.Outlook.Items outlookCalendarItems = null;
oApp = new Microsoft.Office.Interop.Outlook.Application();
mapiNamespace = oApp.GetNamespace("MAPI");
calendarFolder = mapiNamespace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar);
outlookCalendarItems = calendarFolder.Items;
outlookCalendarItems.IncludeRecurrences = true;
oApp = new Microsoft.Office.Interop.Outlook.Application();
mapiNamespace = oApp.GetNamespace("MAPI");
try
{
foreach (Folder fold in mapiNamespace.Folders)
{
if ( fold != null && fold.FolderPath != null)
{
if (fold.FolderPath.Contains(emailAccount))
{ //only own folders
// ------------- you can loop the folderitems here -------------
}
}
}
}
catch (System.Exception ex)
{
}
注意:非常频繁地测试时,您将不得不重新激活vsto插件。您可以在Outlook settins / addins / Com Addins中找到Addin重新激活
希望这对您有所帮助。
答案 1 :(得分:0)
您的最佳选择是监视Items.ItemAdd event收件箱的Folder.Items集合。这将为添加到收件箱中的每封电子邮件触发(除非添加了大量邮件),并且比监视Application.NewMailEx事件更可靠。您可以根据需要在定义的时间段和过程中交叉引用事件触发的时间。