Tag: outlook addin

从特定文件夹获取Outlook中的所有邮件

我想从特定文件夹中获取Outlook中的所有邮件: 我的文件夹结构: 我发现此代码可以获取Outlook收件箱文件夹中的所有邮件(不是图片中的收件箱!): Outlook.Application oApp; Outlook._NameSpace oNS; Outlook.MAPIFolder oFolder; Outlook._Explorer oExp; oApp = new Outlook.Application(); oNS = (Outlook._NameSpace)oApp.GetNamespace(“MAPI”); oFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); oExp = oFolder.GetExplorer(false); oNS.Logon(Missing.Value, Missing.Value, false, true); Outlook.Items items = oFolder.Items; foreach (Outlook.MailItem mail in items) { //do someting } 有人能告诉我如何从特定文件夹中获取所有邮件(例如:wolfy-server)吗?

如何创建自定义Outlook项目?

据我所知,Outlook已经设置了项目,即邮件,任务,日历,笔记等。 如何创建Outlook将识别为其他项目的自定义项? 我知道当您添加Business Contact Manager时,它会创建“机会”之类的项目 您可以覆盖Item,还是inheritanceItem并更改/添加属性和方法? 例子: olAppointmentItem 1 Represents an AppointmentItem olContactItem 2 Represents a ContactItem olDistributionListItem 7 Represents an DistListItem olJournalItem 4 Represents a JournalItem olMailItem 0 Represents a MailItem olNoteItem 5 Represents a NoteItem olPostItem 6 Represents a PostItem olTaskItem 3 Represents a TaskItem

如何遍历某些Outlook子文件夹的所有MailItems

我正在使用Outlook 2007加载项。 我发现一些代码循环遍历所有文件夹,但我无法弄清楚如何在任何给定文件夹内循环以检查MailItem对象(最终,我想将电子邮件保存在别处并修改.Subject属性)。 这是我到目前为止: private void btnFolderWalk_Click(object sender, EventArgs e) { // Retrieve the name of the top-level folder (Inbox) , for // the purposes of this demonstration. Outlook.Folder inbox = Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox) as Outlook.Folder; // Cast the MAPI folder returned as an Outlook folder // Retrieve a reference to the top-level folder. if (inbox != […]

在Outlook中检索当前的电子邮件正文

在我的Outlook插件中我想在function区上添加一个按钮,所以当用户点击此按钮我想要检索当前所选电子邮件的正文时,我有这个代码,但它只检索收件箱中的第一封电子邮件,因为索引是1: Microsoft.Office.Interop.Outlook.Application myApp = new Microsoft.Office.Interop.Outlook.Application(); Microsoft.Office.Interop.Outlook.NameSpace mapiNameSpace = myApp.GetNamespace(“MAPI”); Microsoft.Office.Interop.Outlook.MAPIFolder myInbox = mapiNameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox); String body = ((Microsoft.Office.Interop.Outlook.MailItem)myInbox.Items[1]).Body; 那么如何在outlook中检索当前打开的电子邮件? ,这个方法适合我,但我需要获取当前电子邮件的索引。 谢谢。

钩子事件Outlook VSTO在主线程上继续工作

我开发了一个Outlook VSTO插件。 有些任务应该在后台线程上完成。 通常,检查本地数据库中的某些内容或调用Web请求。 在阅读了几篇文章之后,我放弃了在后台线程中调用Outlook对象模型(OOM)的想法。 我有一些wpf控件,我成功地设法使用.NET 40 TPL执行异步任务,并在完成时“完成”主VSTA线程中的作业(即访问UI或OOM)。 为此,我使用以下forms的语法: Task task = Task.Factory.StartNew(()=>{ //Do long tasks that have nothing to do with UI or OOM return SomeResult(); }); //now I need to access the OOM task.ContinueWith((Task tsk) =>{ //Do something clever using SomeResult that uses the OOM },TaskScheduler.FromCurrentSynchronizationContext()); 到现在为止还挺好。 但是现在我想在OOM中挂钩没有Form / WPF控件的事件时做类似的事情。 确切地说,我的问题来自于TaskScheduler.FromCurrentSynchronizationContext()抛出exception的事实。 例如, Items […]

如何为MS Outlook开发插件?

如何为适用于所有1. Outlook 2010 2. Outlook 2007 3. Outlook 2003的MS Outlook开发插件 我开发的插件适用于2010年和2007年,但不适用于2003年。 我希望这样的东西适用于以上所有三个:)

更改outlook MailItem图标

我正在开发一个outlook 2010插件,当用户单击菜单中的按钮时,该插件会将电子邮件导出到特定位置。 这部分不是问题,但如果导出成功,我还需要更改MailItem图标 – 象形图。 我试图寻找解决方案,但我只是得到我需要使用表单区域 ,但我没有找到真正有用的解决方案。 任何想法我应该如何使用这个表单区域?! 我完成了加载项,从VS 2010调试时,一切似乎都很完美。我还创建了一个安装程序,但在安装应用程序后,Outlook将不会显示我想要的图标。 它不是显示你上面看到的内容,而是更改图标,但显示默认图标 – 而不是我的图标。 图标位于我使用的FormRegion的resx文件中(我使用dor默认和从清单中读取图标),我也尝试将它们移动到一般资源文件(Properties.Resource),但结果是相同的。 有人可以帮我弄这个吗? 所以我使用Replacement和ReplaceAll添加了一个FormRegion,在清单上的默认图标上添加了我的图标,并将其命名为IPM.Note.MyExportedItem。 在ThisAddin.cs中,我有以下代码: MailItem mailItem =(selectedItem as MailItem); itemGuid = mailItem.EntryID; string name = mailItem.Subject + “.msg”; name = “C:\\” + name.Replace(“:”, “”); try { mailItem.SaveAs(name, OlSaveAsType.olMSG); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } mailItem.MessageClass = “IPM.Note.MyExportedItem”; mailItem.Display(true); …….. 但是,当我按照我想要的方式导出它时,这不会将邮箱中的mailItem(电子邮件)图标更改为我的图标,我可以看到的唯一更改是当我调用Display(true)并打开邮件消息时。 此外,如果我按下新项目,选择表格并打开我的表格区域,它会打开一个撰写邮件窗口,如果我发送电子邮件给我,那么它将有我的图标……很奇怪…你可以在图片中看到:-)你知道我做错了什么吗? […]

很好地阅读outlook mailitem属性

我正在为outlook 2007编写一个插件,我想阅读一个MailItem的属性。 特别是我想知道我的附件的所有内容类型。 现在,我现在这样做的方式是这样的: Outlook.MailItem item = OutlookItem as Outlook.MailItem; Outlook.Attachments itt = item.Attachments; foreach (Outlook.Attachment t in item.Attachments) { textBox1.Text += t.PropertyAccessor.GetProperty(“http://schemas.microsoft.com/mapi/proptag/0x370E001F”); } 但我宁愿只是打电话。 t.PropertyAccessor.GetProperty(PR_ATTACH_MIME_TAG); 我不能让你以后的选择工作,但是在msdn文档中提到了这个属性。 (http://msdn.microsoft.com/en-us/library/ms879575.aspx)。 有没有人知道如何在不使用字符串而是使用常量的情况下很好地检索属性?

Outlook.Folder和Outlok.MAPIFolder之间的区别

我不清楚命名空间Outlook的类和MAPIFolder类之间的区别。 当我查看网络中的代码时,有些人使用第一个,而其他人使用其他语法,我无法确定是否: 这只是因为他们的无知(甚至更少,我可以分辨哪个群体是正确的) 它是某种遗留(用于不同版本的Outlook) 这是完全相同的事情(我确信这不是真的,但我不知道) 它是一个inheritance结构(以及什么时候使用) 它只是一种避免类型问题的方法(强制转换和asing) 完全是其他原因(如果是这样的话) 这是我用来获取这两个代码的代码。 Outlook.Folder defaultContactsFolder_1 = this.Application.Session.GetDefaultFolder( Outlook.OlDefaultFolders.olFolderContacts) as Outlook.Folder; Outlook.MAPIFolder defaultContactFolder_2 = this.Application.GetNamespace(“MAPI”).GetDefaultFolder( Outlook.OlDefaultFolders.olFolderContacts);

如何将资源文件夹中的图像作为附件添加并嵌入到C#中的Outlook邮件正文中

我有几个图像存储在visual studio项目Resources文件夹中,我必须加载它们并在Outlook邮件正文中显示。 这是代码: Bitmap b = new Bitmap(Properties.Resources.MyImage); ImageConverter ic = new ImageConverter(); Byte[] ba = (Byte[])ic.ConvertTo(b, typeof(Byte[])); MemoryStream logo = new MemoryStream(ba); LinkedResource companyImage = new LinkedResource(logo); companyImage.ContentId = “companyLogo”; mailitem.HTMLBody += “”; 但是,它不能在邮件正文中显示,而是“红色x的空框”。 你能给我一些想法吗?