Tag: outlook

在Outlook加载项中以MIME格式(* .eml)保存邮件

我想写一个小的Outlook插件(C#),它以纯MIME格式(.eml)将选定的邮件(MailItem)保存到磁盘。 MailItem.SaveAs()方法仅允许以.msg格式保存。 有没有其他(简单)方式,以eml格式保存邮件? 我想保留原始邮件的所有细节。 我读过一些关于Outlook WebServices的内容。 也许我可以在交换服务器中搜索当前在Outlook中选择的邮件并从交换中再次接收并将其保存为.eml? 这个选项需要什么? 是否可以以简单的方式将保存的.msg转换为.eml(保留所有细节,标题等)? 我希望有人可以帮我解决这个问题,因为我花了几个小时寻找一个没有任何结果的解决方案。

如何以编程方式在Outlook搜索文件夹上设置自定义图标? (即Outlook文件夹SetCustomIcon)

我正在尝试使用Folder.SetCustomIcon()方法在我以编程方式创建的已保存搜索文件夹上放置自定义图标。 SetCustomIcon()文档非常稀疏,但可以在此处找到以供参考 。 此外, 它期望的对象是一遍又一遍的例子是非常稀疏的。 有人知道如何设置文件夹的自定义图标吗? 以下是我到目前为止的代码: searchFolders = inboxFolder.Store.GetSearchFolders(); foreach (Outlook.Folder folder in searchFolders) { if (folder.Name == “Expiring Retention Policy Mail”) { folder.ShowItemCount = Microsoft.Office.Interop.Outlook.OlShowItemCount.olShowTotalItemCount; folder.SetCustomIcon(new Bitmap(32, 32)); // <=– this isn't working because it's expecting stdPicture which has very sparse information on how to convert to this type. Globals.ThisAddIn.Application.ActiveExplorer().CurrentFolder = folder; } […]

如何通过C#配置Outlook帐户?

需要通过c#配置电子邮件,名称,邮件服务器等。 如何在不使用Outlook Redemption的情况下执行此操作?

如何在C#中使用Outlook MAPI打开.eml文件?

我有一个C#应用程序,它读取.msg文件并提取正文和附件。 但是当我尝试加载.eml文件时,应用程序崩溃了。 我正在加载这样的文件: MailItem mailItem = (MailItem)outlookApp.CreateItemFromTemplate(msgFileName); mailItem.SaveAs(fullFilename, OlSaveAsType.olHTML); // save body in html format for(int i = 0; i < mailItem.Attachments.Count; i++) mailItem.Attachments[i].SaveAsFile(filename); // save attachments 这适用于.msg文件,但它不适用于.eml文件。 我不明白为什么.eml文件不起作用,因为我可以在Outlook 2010中打开.eml文件。 如何使用Outlook 主互操作程序集加载.eml文件?

阅读未打开Outlook应用程序的电子邮件

多数民众赞成我使用C#阅读电子邮件: outLookApp.NewMailEx += new ApplicationEvents_11_NewMailExEventHandler(outLookApp_NewMailEx); Outlook.NameSpace olNameSpace = outLookApp.GetNamespace(“mapi”); olNameSpace.Logon(“xxxx”, “xxxxx”, false, true); Outlook.MAPIFolder oInbox = olNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); Outlook.Items oItems = oInbox.Items; MessageBox.Show(“Total : ” + oItems.Count); //Total Itemin inbox oItems = oItems.Restrict(“[Unread] = true”); MessageBox.Show(“Total Unread : ” + oItems.Count); //Unread Items Outlook.MailItem oMsg; Outlook.Attachment mailAttachement; for (int i = 0; i < oItems.Count; i++) […]

Outlook中“已发送邮件”上的事件

我正在使用ApplicationEvents_11_ItemSendEventHandler (请参阅http://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.applicationevents_11_itemsendeventhandler.aspx )在从Outlook发送项目时进行一些处理。 但是,由于此事件触发“发送”而不是“已发送”,我无法获取某些信息,例如发件人,发送时间等。 物品实际发送后是否会触发另一个事件? 我读过这篇博客文章; http://easyvsto.wordpress.com/2010/07/27/how-to-save-mail-content-when-a-mail-is-sent-from-outlook/但我对依赖出现的物品持谨慎态度在sent items文件夹中,考虑到用户可以禁用此function。 编辑:我应该补充一点,我实际上已经尝试了“观察已发送的项目文件夹”的方法,并注意到ItemAdd事件似乎只发送我发送的第一封电子邮件,然后再重新启动Outlook。 我的代码如下; var sentMail = Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail); sentMail.Items.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(Items_ItemAdd); 我的方法…… void Items_ItemAdd(object item) { MessageBox.Show(((Outlook.MailItem)item).Subject); }

尝试以编程方式创建和打开新的Outlook电子邮件

我有一个winforms应用程序,我正在尝试创建一个方法,将创建并打开一个新的Outlook电子邮件。 到目前为止我有 private void CreateOutlookEmail() { try { Outlook.MailItem mailItem = (Outlook.MailItem) this.CreateItem(Outlook.OlItemType.olMailItem); mailItem.Subject = “This is the subject”; mailItem.To = “someone@example.com”; mailItem.Body = “This is the message.”; mailItem.Importance = Outlook.OlImportance.olImportanceLow; mailItem.Display(false); } catch (Exception eX) { throw new Exception(“cDocument: Error occurred trying to Create an Outlook Email” + Environment.NewLine + eX.Message); } } 但是’CreateItem’引用带有错误消息的下划线 […]

以编程方式为Outlook 2010创建自定义通讯簿

我想创建一个自定义联系人列表 ( 或称为通讯录 ),以便在Outlook中用户将查看“建议的联系人”,“联系人”等,然后是“自定义联系人”。 我走了,试了以下。 int count = this.Application.GetNamespace(“MAPI”).AddressLists.Count; 这给了我8的值。所以,当然,我试图在地址列表对象中Add一些东西,但猜猜是什么 – 没有这样的方法。 这并不奇怪,因为API明确指出它是只读对象。 但是,我需要为我的客户设置一个地址簿/列表( 无论它叫什么 )。 如何向Outlook添加新的通讯簿 ?

我可以使用System.Net.Mail将电子邮件标记为Outlook的“高重要性”吗?

我正在为我的客户工作的部分应用程序涉及发送事件的电子邮件。 有时这些非常重要。 我的客户端和我的客户端的大多数客户端都使用Outlook,它能够将邮件标记为High Importance。 现在,我知道假设所有最终用户都使用相同的界面是假的,我不是。 但考虑到即使目标不一定是通过Outlook读取,您也可以从Outlook发送电子邮件作为高重要性,这意味着基本上存储了一些数据,以便Outlook知道特定邮件是否被指定为高重要性。 这是我的解释,至少。 应用程序当前使用System.Net.Mail发送电子邮件,使用System.Net.Mail.MailMessages编写它们,使用System.Net.Mail.MailMessages发送它们。 是否可以使用System.Net.Mail的function设置此“高重要性”设置? 如果没有,是否有可用于配置此设置的程序集?

在C#中将多个eml文件转换为单个PST

我需要编写一个函数,它将获取多个eml文件(可能来自单个文件系统文件夹)并将它们转换为单个PST文件。 可能吗? 如果是,有人可以提供示例代码吗? 我认为它可能是因为有很多商业eml到pst转换器那里做这个