2

Контекст следующий:

  • Пользователи могут открывать файлы eml из проводника с помощью настольного клиента (например, заметок из лотоса)
  • Когда файл eml открывается с веб-сайта, этот заголовок ответа: Content-Type: message/rfc822 вместе с Content-Disposition: inline; filename = "myfile.eml отправлены в Internet Explorer
  • Этот тип пантомимы является общим для файлов mhtml и eml
  • Я использовал "встроенный", так как я хочу минимизировать взаимодействие с пользователем (избегайте открывать / сохранять диалоговое окно)
  • Internet Explorer 9 в качестве проводника по умолчанию всегда воссоздает следующую запись реестра: HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\MIMEAssociations ** message /rfc822 **\UserChoice "Progid" = "IE. Message /rfc822 "
  • Если эта запись удалена, eml файлы открываются с помощью моего почтового клиента на рабочем столе.
  • Но любые изменения, которые эта запись обнаруживает IE во время запуска, и он запрашивает браузер по умолчанию для восстановления записи реестра выше

У вас есть идея для обхода?

Что я могу сделать

  • Изменить способ, которым файл eml обрабатывается сайтом
  • изменить настройки IE (это интранет, я могу развернуть исправления реестра!)

Что я не могу сделать

  • использовать другой браузер (Chrome, Firefox)
  • сделать IE браузером не по умолчанию

С уважением

1 ответ1

2

У меня был звонок с Microsoft
Решение в реестре: вы должны удалить некоторые "Возможности" в 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 не будет проверять, что он не является программой по умолчанию для сообщения /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\""

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .