Tornar as páginas abertas do Internet Explorer 9 servindo arquivos eml com o cliente de área de trabalho de correio

2

O contexto é o seguinte:

  • Os usuários podem abrir arquivos eml do explorer com o cliente de desktop (como notas de lótus)
  • Quando o arquivo eml é aberto no site, esse cabeçalho de resposta é: Content-Type: message / rfc822 junto com Content-Disposition: inline; filename="myfile.eml são enviados para o Internet Explorer
  • Esse tipo de mime é comum entre os arquivos mhtml e eml
  • Eu usei "inline" porque quero minimizar a interação do usuário (evite abrir / salvar caixa de diálogo)
  • O Internet Explorer 9 como explorador padrão sempre recria a seguinte entrada de registro HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shell \ Associações \ MIMEAssociations ** message / rfc822 ** \ UserChoice "Progid"="IE. message / rfc822 "
  • Se esta entrada for removida, os arquivos eml serão abertos com meu cliente de e-mail da área de trabalho
  • Mas quaisquer alterações feitas por essa entrada são detectadas pelo IE durante o lançamento e ele pede para ser o navegador padrão para restaurar a entrada do registro acima

Você tem uma ideia para uma solução alternativa?

O que eu posso fazer

  • Alterar a maneira como o arquivo eml é tratado pelo site
  • altere as configurações do IE (é uma intranet, posso implantar patches do registro!)

O que eu não posso fazer

  • use um navegador diferente (chrome, firefox)
  • torna o IE um navegador não padrão

Atenciosamente

    
por Christ-OFF 05.03.2013 / 09:28

1 resposta

2

Eu recebi uma ligação com o Microsoft
A solução está no registro: você precisa remover alguns "recursos" para o 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]

Com isso eu posso

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

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

e mais importante:

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

e o Internet Explorer não verificará se ele é o programa não padrão para message / rfc822

Não se esqueça de associar arquivos .eml ao seu cliente de desktop (como anotações)

[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\""
    
por 07.03.2013 / 11:35