无法尝试附加的MailItem

无法尝试附加的MailItem

问题描述:

我在写C#的一个小应用程序到VisualStudio的2017年为Office 2010无法尝试附加的MailItem

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工作正常,并且正文&新邮件的主题包含主题,发件人等等......所以选择似乎正在工作。但源邮件没有附加。

怎么了?

问候

+0

嗨,你可以发布完整的例外细节和行号在哪里发生? – Stefan

+0

什么是“SelectedMessage”? –

+0

@ BarryO'Kane:我认为它是'Outlook.MailItem SelectedMessage =(Outlook.MailItem)app.ActiveExplorer()。Selection [1];' – Stefan

找到一个解决办法:

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

然后,将这个附加味精文件到当前的电子邮件。

并从磁盘删除邮件。

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

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