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 ( http
ou 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 https
hoje 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 file
protocolo 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 file
protocolo 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:
- Adicione uma entrada DNS ao seu arquivo hosts para resolver ssl.gstatic.com para 127.0.0.1
- 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:
- 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
- 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.png
nã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.
- Uma vez no Visual Basic, vá para:
Project1
Microsoft Outlook Objects
ThisOutlookSession
- 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
- Clique no ícone Salvar
- Reinicie o Outlook
- Você precisará clicar
Enable Macros
sempre 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).