我以前曾使用WebDav根据主题和时间在Exchange 2003服务器上访问已发送消息. 我现在需要实现另一个功能,这意味着将消息从客户端Outlook(不是Web访问)拖到Windows表单上,然后在Exchange上查询WebDav以获取有关此消息的所有信息. 我可以使用以下代码获取消息HREF: Dim msg As MAPI.Message = CType(session.GetMessage(mail.EntryID), MAPI.Message) Dim id as string = CType(CType(msg.Fields(), MAPI.Fields).Item(&H6707001E), MAPI.Field).Value.ToString 但是有两个问题; 1)在URL上的编码与从拖放消息获得的内容以及从WebDav带来的内容之间有所不同(如果我要求所有邮件,我可以看到这些). 2)无论我如何格式化查询,即使我带回所有消息时我从列
以下是关于 outlook 的编程技术问答
看来Outlook.com使用但是,打开电子邮件和用户有机会使用它们之前,一次性链接被标记为使用/过期. 我尝试在中添加rel =" nofollow",但没有成功. 如何在电子邮件中阻止每个链接的爬行者? 谢谢 解决方案 我也做了同样的事情. $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; // Deny access for the BingPreview bot, used by outlook.com on links in e-mails ad Slackbot if (strpos($user_agent, 'BingPreview') !== false || strpos($user_agent, 'Slackbot') !== false) { header
我有一个Web浏览器控件,该控件已添加到用户控件中,并在选择电子邮件时自动导航到特定的URL(假设 https://www.google.com ).当导航正在进行时,单击电子邮件时,它会减慢Outlook和Outlook的实际性能,并等待页面加载.有什么方法可以在后台进行此导航,而不会在单击各种电子邮件时实际影响Outlook的性能? 谢谢. 更新: addin启动代码: Private Sub ThisAddIn_Startup() Handles Me.Startup myUserControl1 = New OutlookTaskPane myUserControl1.TabStop = True Dim width As Integer = myUserControl1.Width myCustomTaskPane = Me.CustomTaskPanes.Add(myUserContr
我有一个Java Web应用程序,用户可以从中添加带日期,主题和描述(例如任务)的事件.我想以编程方式将这些事件发送给用户的Outlook日历.谁能帮我如何实现这一目标? ps:如果可以通过Google日历进行,请告诉我如何执行此操作,因为我不会遇到Outlook:) 解决方案 您现在可以使用有关验证流程,请参见例如.邮寄到 https://outlook.office.com/api/api/v2.0/me/calendars/{calendar_id} > JSON内容类似: { "Subject": "Discuss the Calendar REST API", "Body": { "ContentType": "HTML", "Content": "I think it will meet our requirements!" }, "Start": { "DateTime": "2014-02-02T18:00:
我想从JavaScript Web应用程序创建电子邮件.我完全意识到这一点的问题(例如 Open Open Open Open Open Oble html带有chrome ).典型答案有问题: mailto:链接:这将使您创建一封电子邮件,但仅以纯文本(无HTML),并且不允许附件. ActiveX:即,我的应用程序也需要在Firefox和Chrome中运行.允许ActiveX的FF和Chrome插件是安全危害,似乎是错误的. 服务器端通过SMTP发送:该电子邮件最终不会在用户的"已发送"文件夹中.再加上障碍,让用户在浏览器中编辑html并附加文件. 创建一个Outlook .msg文件:似乎没有库,而且几乎没有写这库.显然,文件格式实际上具有嵌入整个脂肪文件存储系统. 关键差异许多其他问题和我的问题: i 做可以访问客户端机器,因此我可以安装 辅助应用程序或附加功能,根据需要更改设置等等. 接口确实需要不需要实际发送邮件,它只需要 为用户设置它.
无论如何,您是否可以创建一个代码,当您单击一个按钮时(我已经创建了这个),它将采用选定的电子邮件并阻止将删除电子邮件的发件人? 解决方案 Outlook对象模型根本不会公开阻止/安全的发件人. 如果使用 rexemption (我是其作者)是一种选择,它将公开 rdojunkemailoptions object(返回 rdosession .JunkEmailOptions,.JunkEmailOptions, rdoexchangemailboxstore .使用RDOJunkEmailOptions.BlockedSenders.Add. 添加阻塞发件人 其他解决方案 Outlook对象模型没有为此提供任何东西.但是,您可以创建一个VSTO加载项,该加载项可以处理传入的电子邮件并删除它们是发件人属于阻止列表的.当新消息到达收件箱和客户端规则处理之前,Application类的NewMailEx.您可以使用"入口"汇票数组中返回的输入ID调用参见
我使用C#创建了一个用于Outlook的附加组件.建议将其连接到外部文档管理系统(DMS),并将文档/电子邮件上传到其中.现在,我想通过单击插件的按钮将" Outlook"窗口中的选定消息保存到DMS(请参见上图).有什么正确的方法可以毫无用处吗?如果否,请提供以替代方式进行的方法. 下面是我的按钮和消息看起来像 的示例 解决方案 Outlook对象模型不支持EML(MIME)格式保存消息. 您可以 1一次在代码中明确创建MIME文件.您还可以使用现有的MIME转换器(我过去使用过Lumisoft) - 但是它们不会在单个呼叫中转换Outlook消息;您将需要明确构建所有标题和MIME零件. 2使用 3使用 iconvertersession> iconvertersession quar它可用于(Outlook 2003及以上)或其自己的转换器,可用于旧版本的Outlook,或者使用与MAPI的Exchange版本使用.以下脚本将将当前选择的消息保存为
Microsoft Outlook 2010中是否有一个事件可以订阅,以便知道Outlook何时完成初始化,并且所有组件,文件夹等都已加载? 解决方案 好吧,我发现了我需要做的... ... private void ThisAddInStartup(object sender, EventArgs e) { this.Application.Startup += ApplicationStartup; this.Application.ItemLoad += ApplicationItemLoad; } void ApplicationItemLoad(object Item) { //Do something } private void ApplicationStartup() { //Do something } ... ff869298.aspx 其他解决方案 不确定VSTO,但良好的
我面临的问题是,我的VSTO加载项没有在Outlook的加载项对话框中显示发布者名称.它显示为.我正在使用VS2013进行开发.我尝试了签名,但没有起作用.有人可以给出一些具体的步骤吗? 解决方案 不幸的是,显示出发布者名称是VSTO附加组件不可能的.即使您签名 带有AuthenTicode证书的所有ClickOnce文件 您的组装 带有Signtool(Authenticode) 带有CA签名证书的强名称 并为您的汇编和ClickOnce-Manifest设置所有可能的发布者/...-字段,发布者将不会在"加载项"对话框中显示.这是由于VSTO安全的工作方式该VSTO团队成员评论. 其他解决方案 您需要使用自己的数字签名(不是强名称签名)签名.您是否从可信赖的供应商那里购买了证书? 请参阅
我需要从约会实例中的重复约会的主人设置一个用户property. 场景是: A.用户打开了重复会议/约会的实例. b.我的程序在"约会师"系列的主人 上设置了一个用户property 在父属性属性的情况下,获得主约会很容易,但是它是只读的. 如何获得对主约约会的可修改引用? 我要执行的代码与这些行 Outlook.AppointmentItem masterAppointment = (Outlook.AppointmentItem)(currentAppointment.Parent); masterAppointment.ItemProperties.Add("xxx", Outlook.OlUserPropertyType.olText); masterAppointment.ItemProperties["xxx"].Value = aStringValue; masterAppointment.Save(); 解决方案 是什么让您认为约会限制
我们的用户在Outlook中具有3-4个共享电子邮件地址. 我正在开发加载项,它将在其中提取所选商店的电子邮件地址,并将从PEOPE中获取其联系文件夹. 我的问题是我不知道如何获得Selected Stortore的电子邮件地址. 这是我的代码. string recipientName = SelectedStore.EmailAddress; // This is what I want to make it work Outlook.Recipient recip = ns.CreateRecipient(recipientName); recip.Resolve(); if (recip.Resolved) { Outlook.MAPIFolder folderContacts = ns.GetSharedDefa
hi是否有一种方法可以编程设置以下注册表密钥: HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Resiliency\DoNotDisableAddinList\ DWORD= 1 正如我从这篇文章中学到的那样(除其他)时,这阻止了Outlook从Outlook中删除我的慢速.是的,最好设计加快速度的ADDIN.但是,由于它需要在互联网上连接服务,因此很难实现.顺便说一句:我也有许多其他Addins. 解决方案 您需要使用.NET Base类库来完成工作, congistrykey 类代表Windows注册表中的键级节点.参见在
我使用WPF创建了一个用于Outlook的加载项.除了"耀斑"之外,一切正常.当WPF窗口打开时,它没有以Outlook形式为中心,它将打开以屏幕为中心.我将WindowStartLocation设置为Centerowner,但这似乎并没有解决问题. 解决方案 您应该能够获取对Outlook的当前实例的引用,访问该实例的应用程序对象并获取窗口大小和位置(左,顶部),并进行一些数学以获取定位你的窗户. 类似于: 的东西 Dim interopApplication As Outlook.Application = _ Me.ActiveExplorer().Application With interopApplication.ActiveWindow Dim _left = Me.Width - (.Width / 2) Dim _top = Me.Height - (.Height / 2) End With 这假定Outlook窗口在第
我已经在下载了一个新签名中进行了Outlook插件,并为配置文件创建注册表键,以设置新的和回复签名.是否有可能在不重新启动的情况下获取这些新的注册表设置? 编辑: 只是为了澄清我在注册表中应用的设置,就位于" HKEY_CURRENT_USER \ SOFTWORD \ Microsoft \ Office \ Office [Office版本] \ Outlook \ profiles \ 9375CFF041311D3B888AMY0010104B2A6676"的子密钥中. 解决方案 否 - 在Outlook启动之前,永远不会读取对注册表中的Outlook设置的任何更改.
调用TypeText Selection投掷"此命令不可用."异常 以下是我的代码 public void AddFilePaths(List urls) { if (urls.Count > 0) { MailItem mi = null; bool newMailItem = false; mi = MyAddIn.Application.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); mi.Body = "New email body"; newMailItem = true; mi.Display(); inspector = MyAddIn.Application.ActiveInspector(); if (mi
我正在使用以下代码将超链接添加到我的MailItem object link = url + System.Environment.NewLine; Microsoft.Office.Interop.Outlook.MailItem currentMessage = MyAddIn.Application.ActiveInspector().CurrentItem; Microsoft.Office.Interop.Word.Document doc = currentMessage.GetInspector.WordEditor; Microsoft.Office.Interop.Word.Selection sel = doc.Windows[1].Selection; doc.Hyperlinks.Add(sel.Range, ref result, ref missing, ref missing, ref link, ref missing); 虽然这确实在Outl
我正在尝试识别项目发送事件上的项目类型.我非常接近到达那里,但是如果以前已经打开了其他窗口,该程序没有识别当前项目类型. 这是使用的代码: void Application_ItemSend(object Item, ref bool Cancel) { inspectors = this.Application.Inspectors; currentExplorer = this.Application.ActiveExplorer(); currentExplorer.InlineResponse += ThisAddIn_InlineResponse; Outlook.Inspector inspector = Application.ActiveInspector(); Item = inspector.CurrentItem; try {
我正在尝试将邮件从任何文件夹移动到共享收件箱的非常特定的子文件夹.在尝试了许多不起作用的不同事物之后,我尝试循环通过收件箱中的每个文件夹,请检查它是否具有我想要的名称.当我尝试移动MailItem时,我会收到无法移动该元素的消息.在搜索了更长的时间后,我发现的原因,显然我的收件箱中没有文件夹,并且对于每个循环的退出而无需检查一个条目.那么,我应该如何访问一个我只知道的名称? 的特定子文件夹. 相关代码: Private Const destFolder = "myfoldername" Public Function MoveMail() SelectedItems = Globals.ThisAddIn.Application.ActiveExplorer.Selection For Each Item In SelectedItems Call MoveSelectedMail(Item) Next Item End Functio
背景 我以前问了这个问题: Outlook加载程序:如何根据自定义逻辑自动回复? 正如Answerers @eugeneastafiev和 @outlookadd-insteam-msft所述,Outlook Web附加组件只能在当前选择的项目上运行.这对于自动回复用例不起作用,因为自动答复应在接收新电子邮件时发送,无论用户是否选择了它. 问题 尽管如此,我知道附加 can 对传入邮件进行分类,例如移动/将它们复制到不同的文件夹.是否可以从这个意义上检测传入的邮件,然后将加载项调用到外部服务以这种方式发送自动回复? 示例 例如: 加载项副本传入到文件夹中. 加载项命中外部API端点. 外部服务发送自动回复电子邮件(也许使用SMTP或类似?). 澄清 我不是希望在Outlook中使用内置自动答复功能,因为该选项的选项非常有限. (粗略地说,它只能向所有发件人发送一条消息,或者向联系人发送一条消息,而另一个则可以发送给非接触.)我希望