Como posso evitar que o Outlook trave ao receber links do Google Drive?

Como posso evitar que o Outlook trave ao receber links do Google Drive?

Por que, você pode se perguntar, isso está acontecendo? Bem, para ser claro, isso só acontece ao receber um e-mail escrito originalmente no Gmail (um link normal e antigo sem a formatação do Gmail adicionada funciona bem).

O Google insere uma imagem após o link e esse URI da imagem não contém um protocolo ( httpou https). Parece algo assim:

<img src="//ssl.gstatic.com/ui/v1/icons/common/x_8px.png">

Agora, em um navegador da web, isso funcionará perfeitamente; o navegador usará qualquer protocolo usado para carregar a página (geralmente httpshoje em dia).

No Outlook, entretanto, isso é interpretado como um link de compartilhamento de arquivos do Windows.

Assim, o Outlook decide tentar acessar esse endereço usando o Compartilhamento de Arquivos do Windows (na porta 445) e, em vez de negar a solicitação, o Google simplesmente a ignora e o Outlook para de responder até expirar 30 segundos depois. E o Outlook faz isso sempre que você abre a mensagem.

Se você encaminhar a mensagem, o Outlook adicionará um fileprotocolo ao URI da imagem:

<img src="file://ssl.gstatic.com/ui/v1/icons/common/x_8px.png">

E, claro, se o destinatário tiver o Outlook, ele terá o mesmo problema (o fileprotocolo não ajuda; apenas confirma que o Outlook pensa que é uma referência a um arquivo acessível através do Compartilhamento de Arquivos do Windows).

Isso parece ser independente de versão - é um problema com todas as versões do Outlook até 2016.

Existem duas propostas de “respostas” para esta questão espalhadas pela Internet:

  1. Adicione uma entrada DNS ao seu arquivo hosts para resolver ssl.gstatic.com para 127.0.0.1
  2. Desative o download automático de imagens no Outlook

Estas não são respostas. Estas são soluções alternativas que apresentam grandes desvantagens:

  1. A entrada DNS resolverá o problema do Outlook... mas impedirá que você acesse qualquer serviço do Google por meio de um navegador da web
  2. Desativar o download de imagens resolverá o problema do Outlook, mas é seriamente irritante para quem confia em muitos endereços, então você não precisa escolher manualmente baixar/mostrar imagens

Infelizmente, o Google não tem interesse em corrigir esse URI de imagem (mesmo que seja a única imagem com um URI sem protocolo - as mensagens do Gmail contêm uma tonelada de outras imagens que incluem o protocolo), embora seja compreensível, já que a versão sem protocolo funciona bem em navegadores.

A Microsoft está no mesmo barco, alegando que eles usaram primeiro a versão sem protocolo para indicar links de compartilhamento de arquivos do Windows, então eles também não vão consertar.

Portanto, ninguém quer resolver o problema real, que já existe há anos!

Responder1

Eu informei aos usuários finais por que isso está acontecendo: o Outlook está procurando um arquivo externo, mas não consegue recuperar os dados (maneira fácil para o usuário final digerir).

Dei-lhes instruções para editar o e-mail> selecionar a imagem quebrada> excluí-la> salvar o e-mail.

Não há mais problemas ao abrir este e-mail, pois file://ssl.gstatic.com/ui/v1/icons/common/x_8px.pngnão existe mais neste e-mail.

Prefiro este método porque ajuda a educar os usuários sobre alguns dos recursos do Outlook (edição de e-mails), informa que não é um problema interno e devido ao fato de recebermos tão poucos desses e-mails (um incidente a cada 6 meses). É claro que não sei quantas pessoas têm o problema e não falam sobre isso, mas posso executar um script do PowerShell para descobrir :)

Responder2

A únicarealA resposta que descobri é usar um script VBA, que compartilharei abaixo. Espero que alguém mais inteligente do que eu (ou pelo menos alguém com mais tempo) possa transformar isso em um plug-in real do Outlook. Não me importo se você ganhar dinheiro com isso, mas seria legal se eu recebesse o crédito pelo código original, mesmo que seja bastante simples.

Aviso: Se você não se sente confortável em brincar com Visual Basic for Applications (VBA), então você deve parar por aqui ou encontrar alguém que se sinta confortável.

Não vou explicar como ativar o menu Desenvolvedor no Outlook, mas você precisará dele para abrir o Visual Basic.

  1. Uma vez no Visual Basic, vá para:
    • Project1
      • Microsoft Outlook Objects
        • ThisOutlookSession
  2. Adicione o seguinte código abaixo disso:
' When new mail is received...
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Dim arr() As String
    Dim i As Integer
    Dim item As Object
    Dim mailItem As mailItem
    arr = Split(EntryIDCollection, ",")
    For i = 0 To UBound(arr)
        Set item = GetItemById(arr(i))
        If item.Class = olMail Then
            Set mailItem = item
            Call FixGoogleDriveLinks(mailItem)
        End If
    Next
    Set item = Nothing
    Set m = Nothing
End Sub

' Fix Google's gstatic.com links with no protocol so that they use the https protocol explicitly
' This prevents Outlook from hanging on these since it attempts to treat them as Windows File Sharing links
Function FixGoogleDriveLinks(olItem As mailItem)
    olItem.HTMLBody = Replace(olItem.HTMLBody, """//ssl.gstatic.com", """https://ssl.gstatic.com") ' For new messages that came directly from Gmail
    olItem.HTMLBody = Replace(olItem.HTMLBody, "file://ssl.gstatic.com", "https://ssl.gstatic.com") ' For messages that were forwarded using Outlook
    olItem.Save
End Function
  1. Clique no ícone Salvar
  2. Reinicie o Outlook
  3. Você precisará clicar Enable Macrossempre que abrir o Outlook (ou o código não será executado)

Isso corrigirá todas as novas mensagens, masnão corrige nenhuma mensagem antigavocê pode estar se escondendo em sua caixa de entrada (eles ainda congelarão o Outlook por 30 segundos, etc.). Tentei criar um código para corrigir qualquer mensagem que você tentasse ler, mas não consegui fazer isso funcionar. Suspeito que o Outlook não permitirá esse tipo de alteração quando você abrir uma mensagem para lê-la.

Por favor, deixe-me saber se isso funciona para você ou não - eu tenho uma tonelada de código fazendo outras coisas, então eu meio que eliminei isso (então não o testei tecnicamente nesta forma original).

informação relacionada