如何选择多个项目并打开新的邮件表单,并将所有选定的项目作为附件添加到新电子邮件中,以便我可以将它们与新电子邮件一起发送?
我想,这可以分解为:
如何在outlook中获取多个所选项目(假设用户在按住Ctrl键的同时选择所有项目进行多项选择)?
如何在Outlook中打开新电子邮件表单?
如何在上面的1中附加所选项目并将其作为附件添加到新电子邮件中?
更新: 到目前为止,我已经设法做了以下(感谢德米特里的评论):
public void SendSelectedMailsAsAttachment()
{
try
{
Selection olSelection = HostAddIn.ActiveExplorer.Selection;
var count = olSelection.Count;
var items = new List<IItem>();
Microsoft.Office.Interop.Outlook.MailItem oMailItem = HostAddIn.Application.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
oMailItem.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML;
foreach (var sel in olSelection)
{
oMailItem.Attachments.Add(sel);
}
oMailItem.Display(false);
}
catch (Exception ex)
{
//ex message
}
}
但是使用此代码,会发生以下情况:
如果我选择单个电子邮件并尝试将其作为附件发送,则上面的代码执行得很好,新的电子邮件表单会打开,但不会显示任何附件。
如果我选择多封电子邮件并尝试将其作为附件发送,则上述代码会在第二次调用oMailItem.Attachments.Add(sel)
时抛出异常,但异常为“This operation is not supported until the entire message is downloaded. Download the message and try again.
”
答案 0 :(得分:0)
Application.ActiveExplorer.Selection
collection Application.CreateItem
/ MailItem.Display
Application.ActiveExplorer.Selection
集合中的项目,并为每个项目调用MailItem.Attachments.Add
。