【问题标题】:Unable to find object when trying to attach mailitem尝试附加邮件项时找不到对象
【发布时间】: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.SubjectSelectedMessage.Body,所以我的选择不为空。

MessageBox 工作正常,并且新消息的正文和主题包含主题、发件人等...所以选择似乎有效。但是没有附上源邮件。

怎么了?

问候

【问题讨论】:

  • 您好,您可以发布完整的异常详细信息和发生的行号吗?
  • 什么是SelectedMessage
  • @BarryO'Kane:我想是Outlook.MailItem SelectedMessage = (Outlook.MailItem)app.ActiveExplorer().Selection[1];
  • @Stefan 是的,没错,SelectedMessage 是我从 ActiveExplorer() 中选择的。
  • @Stefan 完成 ;)

标签: c# vsto mailitem


【解决方案1】:

寻找解决方法:

首先,我将消息本地保存到磁盘

然后,将此 MSG 文件附加到当前电子邮件中。

并从磁盘中删除邮件。

SelectedMessage.SaveAs(Path.GetTempPath() + "cmail.msg");
newmail.Attachments.Add(Path.GetTempPath() + "cmail.msg");
File.Delete(Path.GetTempPath() + "cmail.msg");

可能不是最好的,但工作正常。 如果有人可以更好,我正在寻找:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 2010-10-09
    • 1970-01-01
    • 2019-01-11
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    相关资源
    最近更新 更多