让 Internet Explorer 9 使用邮件桌面客户端打开提供 eml 文件的页面

让 Internet Explorer 9 使用邮件桌面客户端打开提供 eml 文件的页面

上下文如下:

  • 用户可以使用桌面客户​​端(如 Lotus Notes)从资源管理器打开 eml 文件
  • 当从网站打开 eml 文件时,此响应标头:Content-Type:消息/rfc822连同 Content-Disposition: inline; filename="myfile.eml 一起发送到 Internet Explorer
  • 此 mime 类型在 mhtml 和 eml 文件之间很常见
  • 我使用“内联”,因为我想尽量减少用户交互(避免打开/保存对话框)
  • Internet Explorer 9 作为默认资源管理器始终重新创建以下注册表项 HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\MIMEAssociations**message/rfc822**\UserChoice "Progid"="IE。消息/rfc822
  • 如果删除此条目,则 eml 文件将使用我的桌面邮件客户端打开
  • 但是,IE 在启动过程中会检测到此条目的任何更改,并要求将其设置为默认浏览器以恢复上述注册表项

您有解决方法吗?

我可以做什么

  • 改变网站处理 eml 文件的方式
  • 更改 IE 设置(这是一个内部网,我可以部署注册表补丁!)

我不能做什么

  • 使用其他浏览器(chrome、firefox)
  • 将 IE 设为非默认浏览器

问候

答案1

我与微软进行了通话,
解决方案是在注册表中:你必须删除 IE 的一些“功能”

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Capabilities\MIMEAssociations\message/rfc822]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Capabilities\MIMEAssociations\message/rfc822]
[-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Capabilities\MIMEAssociations\message/rfc822]

这样我就可以

[HKEY_CLASSES_ROOT\MIME\Database\Content Type\message/rfc822]
"CLSID"=-

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\Content Type\message/rfc822]
"CLSID"=-

更重要的是:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\MIMEAssociations\message/rfc822]

并且 Internet Explorer 不会检查他是否是 message/rfc822 的非默认程序

不要忘记将 .eml 文件关联到您的桌面客户端(如笔记)

[HKEY_CLASSES_ROOT\.eml]
@="Notes.emlfile"
"Content Type"="message/rfc822"

[HKEY_CLASSES_ROOT\.eml\shell]

[HKEY_CLASSES_ROOT\.eml\shell\open]

[HKEY_CLASSES_ROOT\.eml\shell\open\command]
@="\"C:\\Program Files (x86)\\IBM\\Lotus\\Notes\\notes.exe\" -defini \"%1\""

相关内容