使用HTML敏捷包解析Outlook电子邮件正文

Daniel Tou.

新成员
加入
2017年1月15日
消息
4
编程经验
Beginner
你好 ,

请帮助我出现:
"instem.core.dll类型的“system.argumentNullexception”类型的未处理异常

附加信息:值不能为null。"
并告诉我我是否在赖特曲目中解析电子邮件正文。
谢谢 !



static void Main(string[] args)
        {
            Microsoft.Office.Interop.Outlook.Application app = null;
            Microsoft.Office.Interop.Outlook._NameSpace ns = null;
            Microsoft.Office.Interop.Outlook.MAPIFolder inboxFolder = null;
            Microsoft.Office.Interop.Outlook.MAPIFolder subFolder = null;

            Excel.Application oApp;
            Excel.Workbook oWB;
            Excel.Worksheet oSheet;

            app = new Microsoft.Office.Interop.Outlook.Application();
            ns = app.GetNamespace("MAPI");
            ns.Logon("[email protected]", "XXXXXX", false, true);
            inboxFolder = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
            subFolder = inboxFolder.Folders["Test"]; //folder.Folders[1]; also works

            oApp = new Excel.Application();
            oWB = oApp.Workbooks.Add();
            oSheet = (Excel.Worksheet)oWB.Worksheets.get_Item(1);

            MailItem mailItem = app.CreateItem(OlItemType.olMailItem);
            mailItem.HTMLBody = subFolder.ToString();

            HtmlAgilityPack.HtmlDocument emailBody = new HtmlAgilityPack.HtmlDocument();
            emailBody.LoadHtml(mailItem.HTMLBody);

            HtmlAgilityPack.HtmlNode[] nodes = emailBody.DocumentNode.SelectNodes("//td").ToArray();

            foreach (HtmlAgilityPack.HtmlNode item in nodes)
            {
                Console.WriteLine(item.InnerHtml);
            }
 
最后编辑了主持人:

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,732
地点
悉尼,澳大利亚
编程经验
10+
这是您代码中的违规行。什么是抛出异常的实际方法?查看异常的堆栈跟踪,它将显示当抛出异常时当前正在执行的方法。在猜测中,我会说SelectedNodes正在返回任何内容,因此toarray扩展方法的第一个参数都没有。堆栈跟踪是这样,所以我们不必猜测。
 

Daniel Tou.

新成员
加入
2017年1月15日
消息
4
编程经验
Beginner
我有以下堆栈迹象,但我不知道如何解决这个问题。

在system.linq.enumable.toArray [Tsource](Ienumerable`1源)
在test_html_agility.program.main(String [] args)中的c:\ users \ daniel.tou \ documents \ projects \ projects \ test html agiless \ test html agiless \ program.cs:第42行
在system.appdomain._nexecuteassembly(Runtimeassembly组装,String [] args)
在system.appdomain.executeAssembly(字符串汇编文件,证据汇编文件,String [] args)
在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAsseMbly()
在system.threading.threadhelper.threadstart_context(对象状态)
在System.Threading.executionContext.Runinternal(ExecutionContext ExecutionContext,ContexCallback回调,对象状态,Boolean Preservesyncctx)
在System.Threading.executionContext.Run(ExecutionContext ExecutionContext,ContexCallback回调,对象状态,Boolean Preservesyncctx)
在system.threading.executionContext.Run(ExecutionContext ExecutionContext,
 

约翰

C#论坛主持人
工作人员
加入
2011年4月23日
消息
1,161
地点
挪威
编程经验
10+
mailItem.HTMLBody = subfolder.tostring.();
这不是返回文件夹名称吗?
 
最佳 底部