如何使用 WebDav 将 dav:href 与 Outolook Interop href 值匹配

2023-12-01

我以前曾使用 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)无论我如何格式化查询,即使我在带回所有消息时从列表中复制 href,它也永远不会带回结果。

以下是失败的搜索请求的示例(如果删除 where 子句则有效):

    <?xml version="1.0" ?>
    <D:searchrequest xmlns:D="DAV:">
        <D:sql>SELECT "DAV:contentclass","DAV:href", "DAV:displayname","urn:schemas:httpmail:datereceived","urn:schemas:httpmail:subject" 
FROM "https://server/exchange/mailbox" WHERE "DAV:href"='/Inbox/email.EML'</D:sql>
    </D:searchrequest>

我一直在使用相对语法本文但尝试过很多组合。


这是相当冗长的,但我还没有找到更好的方法来做到这一点:

Outlook.MailItem.EntryID 包含 4 个 Guid,尽管我不确定它们都映射到什么。最后一个指南包含您想要的信息。

00000000E6053DD369FAB340B6B8C4D77A0
B37D30700173A23D2AA06A3488E75E759DD
1ACBBB00000A6F78CC00007B9F3D877B316
4499DE695FBB7FCDE5F00000EBD83B9 0000

粗体部分是我们可以使用的消息 ID(在我收件箱中的所有消息中,它们的条目 ID 之间只有这 7 位不同)。

接下来,修改您的 webDAV 查询以恢复DAV:permanenturl财产。这将如下所示:

https://SERVER_NAME/exchange/MAILBOX@DOMAIN>COM/-FlatUrlSpace-/173a23d2aa06a3488e75e759dd1acbbb-a6f78cc/7b9f3d877b3164499de695fbb7fcde5f-ebd83b9

因此,您需要做的就是对指定邮箱中的所有项目进行 webDAV 查询,循环比较永久URL与部分EntryID找到你的匹配。

如果 webDAV 上有一个 EntryID 我会更高兴,但似乎没有一个可以直接访问的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 WebDav 将 dav:href 与 Outolook Interop href 值匹配 的相关文章

  • 在 System.Xml.XPath 中启用 XPath2 查询(XPathException:无效令牌)

    Microsoft 的 System Xml XPath nuget package 可用于 NET 4 6 声称支持 XPath 1 0 和 2 0 德文档 https msdn microsoft com en us library s
  • 将标签文本的一部分设置为粗体

    有什么办法可以使一部分label text要大胆吗 label text asd string 想要string部分要加粗 有可能吗 这怎么办 下面的类说明了如何通过覆盖来做到这一点OnPaint in the LabelWinForms
  • 重写某些 .Net Framework 控件的绘制以更改其边框颜色?

    SCENARIO 我正在使用第三方 Windows 视觉主题 当我看到我的应用程序时 它看起来像这样 但是当我使用正常的Aero主题 它看起来到处都有可怕的白色边框 QUESTION 我知道应用程序中使用的配色方案取决于视觉风格 但是 我可
  • 高度并行化的Levenshtein距离算法

    实际上 我必须实现一个字符串比较 最后得到匹配百分比 不仅仅是布尔结果匹配 不匹配 为此 我找到了 Levenstein 距离算法 但现在的问题是性能 例如 我有 1k 个字符串需要相互比较 现在大约需要 10 分钟 对于每个算法 我已经并
  • Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?

    是否可以将 Android 移动设备用作 PC 上的 GSM 调制解调器 我正在 net下开发应用程序来发送 接收短信等 现在我想通过 USB 将我的 Android 设备连接到我的 PC 并将其用作 GSM 调制解调器来与其通信 这里是参
  • 使用 luasocket smtp 和 ssl 发送电子邮件

    我一直在尝试使用帖子中描述的代码发送电子邮件 lua使用gmail账户发送邮件 https stackoverflow com questions 11070623 lua send mail with gmail account 代码由米
  • 如何创建包含 IPv4 地址的文本框? [复制]

    这个问题在这里已经有答案了 如何制作一个这样的文本框 我想所有的用户都见过这个并且知道它的功能 您可以使用带有 Mask 的 MaskedTestBox000 000 000 000 欲了解更多信息 请参阅文档 http msdn micr
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 在 C# 中读取/写入大型 XML 文件

    我正在开发一个带有 XML 数据库的应用程序 我有很大的 XML 文件 我必须在其中读取和写入数据 问题是我不想将整个 XML 文件加载到内存中 也不想因为性能问题而循环遍历整个文件 因为如果我将整个文件加载到内存中 这将影响应用程序性能
  • 如何访问 TabControl 选项卡内的控件?

    这就是我到目前为止所拥有的一切 tabControl1 TabPages 0 我的 TabControl 的 TabPage1 中有一个 PictureBox 如何使用代码而不是属性窗格更改图像位置 尽管控件出现在容器内 作为 TabCon
  • 什么是 .NET 程序集?

    什么是 NET 程序集 我浏览了网络 但无法理解其定义 程序集是 net 应用程序的最小部署单元 它可以是一个dll or an exe 它主要有两种类型 私人集会 dll 或 exe 是一个应用程序的专有财产 一般存放在应用程序根文件夹中
  • 为什么“扔”和“扔前”在这种情况下有相同的行为?

    我惊呆了 我一直以为throw单独在 catch 块中会抛出手头的异常而不改变堆栈跟踪 但是throw ex在 catch 块中将更改堆栈跟踪以显示源自语句位置的异常 采取以下两个代码块 我希望输出会略有不同 因为使用throw和其他用途t
  • 使用 swiftmailer 向多个收件人发送电子邮件

    我正在尝试在我的项目中使用 swiftmailer 以便我可以向多个用户发送 html 新闻通讯 我已经彻底搜索过 但我得到的一切从未对我有用 我想在表单输入字段中粘贴多个收件人 以逗号分隔 然后将 html 电子邮件发送给他们 我将收件人
  • 通过 SMTP 发送带有保证 ID 的消息

    再会 抱歉提出这么 明确 的问题 让我解释一下 在我的 程序 中 我通过 例如 gmail SMTP 服务器发送一些电子邮件 假设我发送的每封电子邮件的标头中都包含一些唯一的 ID 由我生成 从 gmail 检索消息 例如 使用 pytho
  • 任务和异步任务之间的区别

    C 提供了两种创建异步方法的方法 Task static Task
  • ArrayList 有什么问题?

    最近我问了一个关于 SO 的问题 其中提到了可能使用 c ArrayList 来解决问题 有人评论说使用数组列表不好 我想了解更多有关此的信息 我以前从未听说过关于数组列表的这种说法 有人可以带我了解使用数组列表可能出现的性能问题吗 C n
  • 以编程方式阻止 Vista 桌面搜索 (WORDS) 对映射网络驱动器上的 pst 文件建立索引

    经过几天的多次尝试 我没有找到任何 100 的解决方案来解决这个问题 我的搜寻和调查范围 直接访问注册表 HKLM SOFTWARE Microsoft Windows Search CrawlScopeManager Windows Sy
  • 检测到 ASP.NET 网页版本冲突:指定版本为“1.0.0.0”,但 ASP.MET MVC 3 中 bin 中的版本为“2.0.0.0”

    安装 microsoft web helper 后出现以下错误 检测到 ASP NET 网页版本冲突 指定版本为 1 0 0 0 但 bin 中的版本为 2 0 0 0 要继续 请从应用程序的 bin 目录中删除文件或删除 web conf

随机推荐

  • RDLC 表达式导致#error

    我有两个小数字段 利润和收入 它们显示在 Tablix 控件中 每个控件都有自己的列 在第三列中 我想将利润除以收入 当这些字段中的任何一个为零时 结果是 error 我猜测这是由于除以零造成的 我想出了以下表达式来解决这个问题 iif C
  • R闪亮:如何在数据框中嵌入sliderInputs/selectInputs和radioButtons? (错误:无法将“shiny.tag”类强制到 data.frame)

    我需要在矩阵中嵌入不同类型的输入 它适用于 textInput 和 numericInput 但我找不到 selectInput sliderInput 和 radioButton 的方法 我可以在 HTML 中指定 textInput 和
  • C++中字符的指针

    根据书本 第一行 cout 应该打印我所在位置的地址字符变量 b被存储 这似乎是这种情况整型变量a也 但是第一个 cout 语句打印出一个奇怪的结果 dh 而第二条语句正确打印十六进制值 ox23fd68 为什么会发生这种情况 includ
  • 缺少必需的参数,包括无效的参数值,使用 LinkedIn API 多次参数

    我尝试使用 OAuth2 使用 LinkedIn API 进行身份验证 代码 if isset GET code AND isset GET state code GET code state GET state curl request
  • Beautiful Soup 并通过 ID 提取 div 及其内容

    soup find tagName id articlebody 为什么这不返回 div div 标签和中间的东西 它什么也不返回 我知道它确实存在 因为我正盯着它 soup prettify soup find div id articl
  • Java围绕参数值同步方法

    考虑以下方法 public void upsert int customerId int somethingElse some code which is prone to race conditions 我想保护此方法免受竞争条件的影响
  • 开玩笑测试不使用 dotenv 读取环境变量

    我正在对一个调用环境变量的函数运行测试 但未定义 我尝试过但不起作用的解决方案 1 add require dotenv config path env 在我的测试文件中 2 在 package json 中传递全局变量 jest glob
  • spring boot - @PostConstruct 未在 @Component 上调用

    我是 spring 新手 我使用以下命令创建了一个新的 spring boot 项目https start spring io 没有进一步的依赖项 解压缩 zip 文件并在 IntelliJ IDEA 中打开该项目 我没有进行任何进一步的配
  • 撤消 git pull --rebase?

    我刚刚跑了 git pull rebase 并且忘记指定 来源 它看起来像是从所有不同的分支中提取的 有没有办法从这里恢复我的存储库以撤消拉动 Thanks After a git pull手术 ORIG HEAD应该指向之前的值HEAD
  • 从 JSONArray 获取 JSONObject [重复]

    这个问题在这里已经有答案了 我对从服务器获得的 JSONObject 进行了一些修复 jsonObj new JSONObject resultString JSONObject sync reponse jsonObj getJSONOb
  • 在 iOS 设备上访问以编程方式创建的日历

    我已经弄清楚如何在 iPhone 应用程序中添加自定义日历 但我不知道如何将该日历添加到设备的日历中 从应用程序内查看时 该事件会显示正确的日历 但即使我点击事件的日历行 我的日历也不在列表中 如果我想保持日历名称正确 我必须取消 有没有办
  • 我们是否应该始终在 Swift 中的闭包内使用 [unowned self]

    WWDC 2014 第 403 场中级斯威夫特 and 成绩单 有下面的幻灯片 发言者说 在这种情况下 如果我们不使用 unowned self 在那里 将会出现内存泄漏 这是否意味着我们应该始终使用 unowned self 内部封闭 O
  • 确定变量是否在 Python 中定义[重复]

    这个问题在这里已经有答案了 如何知道运行时代码中的特定位置是否已设置变量 这并不总是显而易见的 因为 1 可以有条件地设置变量 并且 2 可以有条件地删除变量 我正在寻找类似的东西defined 在 Perl 或isset 在 PHP 中或
  • 自定义元素未拾取 onclick

    我正在定义一个自定义元素 customElements define my button class extends HTMLButtonElement onclick console log bar extends button http
  • Unix Sockets 的缓冲特性

    有谁知道 Unix 套接字在发送小块数据 几个字节 时的缓冲特性 当我使用 TCP 套接字时 我可以禁用 Nagle 算法以防止数据传输中的延迟 但 Unix 域套接字没有 据我所知 等效的功能 unix 域套接字上没有可用的 nagle
  • 如何实现固定步长循环?

    我试图在我的程序中创建一个固定的步骤循环 但由于某种原因我似乎无法让它正常工作 基本上我需要的是一个循环 while over Update elapsedtime Draw elapsedtime 或类似的东西 带有 我尝试过使用 Thr
  • 控制对未来内容的访问

    这主要是关于未来的公共内容 但不仅如此 在标准 Plone 站点中 如果您创建的顶级内容未显示在导航上 仍然是私有的 那么您将其公开 通过工作流程 并显示在导航上 但稍后您会在将来计时它再次从导航中消失 不过 此时 如果匿名 登录用户知道
  • 如何制作单个可执行文件 VS 2010

    我正在使用 C 和 DirectX 制作游戏 如果能够通过提供单个可执行文件而不是运行安装向导来与其他人分享我的小组进度 那就太好了 我已经检查了我的发布和调试文件夹 但这些可执行文件不起作用 发布的 exe 大小约为 21KB 这似乎不正
  • devtools/GitHub 下载错误

    截至今天我无法使用devtools从 GitHub 安装包 不知道错误是否在于 Me 开发工具 GitHub 我在用着install github如下并得到以下错误 library devtools install github repor
  • 如何使用 WebDav 将 dav:href 与 Outolook Interop href 值匹配

    我以前曾使用 webdav 根据主题和时间访问 Exchange 2003 服务器上发送的消息 这很有效 我现在需要实现另一个功能 这意味着将消息从客户端 Outlook 不是 Web 访问 拖到 Windows 窗体上 然后在 Excha