Tag: outlook

转发MailItem Outlook Addinn问题

我试图通过点击按钮获取所选邮件项目,然后我必须将其转发到某个固定的电子邮件地址,我对c#语言非常新,这是我使用我的mailitem转发的function private void sendMail(MailItem mail) { mail.to = “myemailid@gmail.com”; //my fixed email adress mail.cc=””; //removing any carboncopy users mail.bcc=””; //removing any blind carbon copy users mail.send(); } 这是正常工作但发生的事情是我将发送信箱中的电子邮件转发到:myemailid @ gmail.com,但它会从我的收件箱中删除。 我认为它可能是由于使用的邮件项目的相同实例,所以我尝试使用此代码 private void sendMail(MailItem mail) {MailItem newmail = mail; newmail.to = “myemailid@gmail.com”; //my fixed email adress newmail.cc=””; //removing any carboncopy users newmail.bcc=””; //removing any blind […]

如何将Outlook MailItem对象转换为byte

有一些Stackoverflow问题,但没有一个真正提供解决方案。 场景 – 我在VS2013中创建了一个Outlook AddIn。 用户选择电子邮件,点击我的AddIn按钮,电子邮件被发送到web服务,存储在数据库中并链接到客户端。 任何人都可以在任何位置打开电子邮件进行查看。 目前我正在使用MailItem.SaveAs(filePath)函数,然后使用File.ReadAllBytes(filePath)创建一个可以发送到Web服务的字节数组。 我创建byte []后立即删除该文件: for (int x = 0; x < Emails.Count; x++) { //TODO: RMc – is there a better way than saving to disk? unable to convert MailItem directly to stream…! Guid g = Guid.NewGuid(); string filePath = "c:\\temp\\" + g.ToString() + ".msg"; Emails.ElementAt(x).SaveAs(filePath); byte[] by = […]

使用带有C#的Microsoft Outlook API列出日历并添加事件

我找到了一些关于如何使用REST API连接到Outlook帐户的Microsoft资源。 他们提供的示例教程让我创建了一个WPF项目并向Outlook Developer中心注册了一个应用程序。 所以我已经完成了所有这些并且可以连接到Outlook。 它显示用户必须允许访问的内容屏幕。 都好。 但我不想使用WPF。 理想情况下,我想编写一个C#.NET DLL组件,与Outlook API进行通信,以便我可以专门: 列出日历 将事件添加到日历 从日历中删除事件 我知道我需要使用Microsoft.Graph库,但我无法找到如何在C#.NET中使用它。 我熟悉Google Calendar API并编写了一个VB。 执行相同操作的.NET命令行实用程序。 所以我希望能做类似的事情。 WPF教程在“连接”阶段停止,因此我不知道如何继续。 另一个例子在这里: https://docs.microsoft.com/en-us/outlook/rest/dotnet-tutorial 这向您展示了如何使用ASP.NET MVC Web应用程序编写实用程序来获取Outlook邮件,日历和联系人。 但同样,我对如何用C#.NET DLL做我想做的事感到困惑。 如果可以使用C#DLL中的Microsoft.Graph库列出日历等,我将不胜感激。 如果有更直接的资源我应该指出这个问题,那么我会非常乐意这样做。 谢谢。 PS。 请注意,我指的是在线Outlook系统而不是用户PC上的Microsoft Outlook。

如何从Outlook获取最新消息

我正在为我的团队在工作中用C#编写一个工作管理应用程序(因为我们愚蠢的雇主没有给我们任何适当的工具)。 我需要每隔一段时间检查一次Outlook中的新消息,我需要自上次检查后收到消息。 我已经尝试了Items.Restrict()方法并使用filter”[ReceivedTime] > ‘ “+lastUpdate+” ‘ ” ,但它似乎无法正常工作。 我可能已经尝试过lastUpdate所有可能格式 – 转换为通用时间,字符串,美国日期/时间格式。 没有正常工作。 它要么在绝对不同的时间范围内给我消息,要么根本找不到任何消息。 知道我做错了什么吗? 我也在考虑使用AdvancedSearch()但实现起来会轻松快捷吗? 提前感谢您的回复!

更改outlook mailitem选择c#

我想从outlook加载项中选择一个mailItem。 我知道如何从c#显示mailitem,但我需要在outlook窗口中选择它。 显示mailitem: mailItem.Display(); 我正在使用Outlook 2010加载项。 任何人都知道如何做到这一点?

通过Windows服务运行时,操作不可用(从HRESULTexception:0x800401E3(MK_E_UNAVAILABLE))?

我试图从Windows服务挂钩到Outlook应用程序,但得到一个exception操作不可用(HRESULTexception:0x800401E3(MK_E_UNAVAILABLE))这里是我的代码。 public void ItemSendEvent() { try { if (Process.GetProcessesByName(ApplicationConstants.OUTLOOK_PROCESS_NAME).Count() > 0) { // If so, use the GetActiveObject method to obtain the process and cast it to an Application object. outlookApplication = Marshal.GetActiveObject(ApplicationConstants.OUTLOOK_APPLICATION_NAME) as Microsoft.Office.Interop.Outlook.Application; Microsoft.Office.Interop.Outlook.NameSpace nameSpace = outlookApplication.GetNamespace(ApplicationConstants.OUTLOOK_NAME_SPACE); nameSpace.Logon(“”, “”, Missing.Value, Missing.Value); nameSpace = null; outlookApplication.ItemSend += outlookApplication_ItemSend; } log.Info(“Outlook Item Send event registered […]

COMException(0x800401E3):具有计划任务的操作不可用(来自HRESULT的exception:0x800401E3(MK_E_UNAVAILABLE))

在网上搜索没有成功,这是我的问题。 我有一项任务,我想安排从outlook检索电子邮件的附件并提取数据。 当我手动启动任务时,它工作正常,但每当我尝试通过计划任务启动它时,它都会失败并显示错误: COMException(0x800401E3):操作不可用(来自HRESULT的exception:0x800401E3(MK_E_UNAVAILABLE)) 当程序尝试检索或创建Outlook实例时,会发生以下情况: private Application GetApplicationObject() { Application application = null; if (Process.GetProcessesByName(“OUTLOOK”).Any()) { application = Marshal.GetActiveObject(“Outlook.Application”) as Application; } else { application = new Application(); } return application; } 我尝试了几种方法(批处理文件,.exe文件,程序中的参数)但它们都失败了。 它是使用用于手动启动任务的相同帐户启动的。 有人能帮我吗 ? 任何帮助,将不胜感激! 干杯!

从路径创建/打开现有消息到c#中的新Outlook.MailItem

您好我想从位于磁盘上的现有创建Outlook.MailItem(我相信)。 我将路径存储在一个字符串中,并希望访问以保存它的正文和附件。 我似乎无法弄清楚如何在c#中打开它并访问它。 目前我有类似的东西 其中fl评估为“C:\ users \ msgs \ email.msg”之类的东西 谢谢你的时间 Outlook.Application app = new Outlook.Application(); try { foreach (String fl in Directory.GetFiles(docInfo.LocalPath + _preprocessorDirectory)) { if (Regex.IsMatch(fl.Trim(), _regex, RegexOptions.IgnoreCase)) { Outlook.MailItem email = new Outlook.MailItem(fl); SaveAttachments(email); SaveBody(email); } } } catch (Exception ex) { logger.Error(“Error in Process for document ” + docInfo.OriginalPath, ex); callback.Invoke(docInfo, […]

OpenSharedItem用于打开在Outlook C#中显示错误的.MSG文件

我使用以下代码打开签名/未签名的Outlook邮件,并在WebBrowser控件中显示内容。 Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application(); var item = app.Session.OpenSharedItem(msgfile) as Microsoft.Office.Interop.Outlook.MailItem; string message = item.HTMLBody; app.Session.Logoff(); 它在文件第一次打开时工作正常,但在关闭Outlook文件后尝试重新打开文件时显示以下错误: “无法打开文件:C:\ tion.msg。该文件可能不存在,您可能没有权限打开它,或者它可能在另一个程序中打开。右键单击包含该文件的文件夹,然后单击”属性“。检查你对该文件夹的权限。“ 过了一段时间后它开门很好。 对于这种奇怪的行为,可能是什么原因以及如何纠正错误消息?

Programmaticaly阻止Vista桌面搜索(WDS)索引放置在映射网络驱动器上的pst文件

经过几天多次尝试,我没有找到任何100%的解决方案来解决这个问题。 我的搜索和调查范围: 直接访问注册表:HKLM \ SOFTWARE \ Microsoft \ Windows Search \ CrawlScopeManager \ Windows \ SystemIndex \ WorkingSetRules HKCU \ Software \ Microsoft \ Windows Search \ Gather \ Windows \ SystemIndex \ Protocols \ Mapi HKLM \ SOFTWARE \ Microsoft \ Windows Search \ Gather \ Windows \ SystemIndex \ Sites \和其他键… Windows搜索3.X接口,如使用Microsoft.Search.Interop的ISearchManager Microsoft.Office.Interop.Outlook类:NameSpace,Store […]