无法尝试附加的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.Subject
,SelectedMessage.Body
很好,所以我选择不为空。
MessageBox工作正常,并且正文&新邮件的主题包含主题,发件人等等......所以选择似乎正在工作。但源邮件没有附加。
怎么了?
问候
答
找到一个解决办法:
首先,我在本地保存消息到磁盘
然后,将这个附加味精文件到当前的电子邮件。
并从磁盘删除邮件。
SelectedMessage.SaveAs(Path.GetTempPath() + "cmail.msg");
newmail.Attachments.Add(Path.GetTempPath() + "cmail.msg");
File.Delete(Path.GetTempPath() + "cmail.msg");
可能不是最好的,但工作正常。 如果有人可以更好,我正在寻找:)
嗨,你可以发布完整的例外细节和行号在哪里发生? – Stefan
什么是“SelectedMessage”? –
@ BarryO'Kane:我认为它是'Outlook.MailItem SelectedMessage =(Outlook.MailItem)app.ActiveExplorer()。Selection [1];' – Stefan