上下文如下:
- 用户可以使用桌面客户端(如 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\""