【发布时间】:2017-08-29 10:29:39
【问题描述】:
我正在用 c# 为 VisualStudio 2017 for Office 2010 编写一个小应用程序
Outlook.Application app = new Outlook.Application();
Outlook.MailItem SelectedMessage = (Outlook.MailItem)app.ActiveExplorer().Selection[1];
Outlook.MailItem newmail = app.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem;
newmail.Subject = SelectedMessage.SenderEmailAddress + " - " + SelectedMessage.Subject;
newmail.To = SenderEmailVar;
newmail.Body += "Subject : " + SelectedMessage.Subject;
newmail.Body += "Received by : " + SelectedMessage.SendUsingAccount.SmtpAddress;
newmail.Body += "Sent by : " + SelectedMessage.SenderEmailAddress + "\n\n";
MessageBox.Show(SelectedMessage.Body);
newmail.Attachments.Add(SelectedMessage);
newmail.Send();
但我有一个例外:
找不到对象
对不起,它是法语(我试图翻译它)。
发生 System.Runtime.InteropServices.COMException。 HResult=0x8004010F 消息=操作失败。找不到对象。 来源=Microsoft Outlook 程序调用树: 无法评估异常的过程调用树
它出现在newmail.Attachments.Add(SelectedMessage); 行。
我可以选择SelectedMessage.Subject、SelectedMessage.Body,所以我的选择不为空。
MessageBox 工作正常,并且新消息的正文和主题包含主题、发件人等...所以选择似乎有效。但是没有附上源邮件。
怎么了?
问候
【问题讨论】:
-
您好,您可以发布完整的异常详细信息和发生的行号吗?
-
什么是
SelectedMessage? -
@BarryO'Kane:我想是
Outlook.MailItem SelectedMessage = (Outlook.MailItem)app.ActiveExplorer().Selection[1]; -
@Stefan 是的,没错,SelectedMessage 是我从 ActiveExplorer() 中选择的。
-
@Stefan 完成 ;)