Outlook VSTO加载项-VB.net

时间:2019-04-17 09:35:19

标签: vb.net outlook outlook-addin outlook-vba outlook-2013

我的任务是创建一个用于管理邮箱警报的加载项。本质上,加载项需要不断扫描收件箱,并且在一段时间内一旦收到一定数量的电子邮件,则需要将电子邮件发送到另一个收件箱。

有人可以给我一些从哪里开始的指针吗?

如果您有其他建议,我愿意向他们提出建议,例如创建宏。无论哪个看起来更简单,更有效。

2 个答案:

答案 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事件更可靠。您可以根据需要在定义的时间段和过程中交叉引用事件触发的时间。