Outlook VSTO添加 - VB.net

问题描述 投票:0回答:2

我的任务是创建一个管理邮箱警报的插件。基本上,添加需要不断扫描收件箱,一旦在一段时间内收到一定数量的电子邮件,它需要向另一个收件箱发送电子邮件。

有人可以给我一些指示从哪里开始?

如果您有任何其他建议,我会向他们开放,例如创建宏。无论哪个更容易,更有效率。

vb.net outlook outlook-addin outlook-vba outlook-2013
2个回答
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重新激活

希望这可以帮到你。


0
投票

你最好的选择是监视收件箱的Folder.Items集合的Items.ItemAdd event。这将触发添加到收件箱的每个电子邮件(除非添加了非常大的数量),并且可以比监视Application.NewMailEx事件更可靠。您可以交叉引用事件触发的时间与您定义的时间段,并在必要时进行处理。

© www.soinside.com 2019 - 2024. All rights reserved.