Sie fragen sich vielleicht, warum das passiert? Um es klarzustellen: Das passiert nur, wenn Sie eine E-Mail erhalten, die ursprünglich in Gmail geschrieben wurde (ein normaler altmodischer Link ohne hinzugefügte Gmail-Formatierung funktioniert einwandfrei).
Google fügt nach dem Link ein Bild ein und diese Bild-URI enthält kein Protokoll ( http
oder https
). Es sieht ungefähr so aus:
<img src="//ssl.gstatic.com/ui/v1/icons/common/x_8px.png">
In einem Webbrowser funktioniert dies problemlos. Der Browser verwendet das Protokoll, das zum Laden der Seite verwendet wurde ( https
heutzutage normalerweise).
In Outlook wird dies jedoch als Windows-Dateifreigabelink interpretiert.
Outlook versucht also, über die Windows-Dateifreigabe (auf Port 445) auf diese Adresse zuzugreifen. Anstatt die Anfrage abzulehnen, ignoriert Google sie einfach und Outlook reagiert erst 30 Sekunden später, wenn die Zeit abgelaufen ist. Und Outlook macht das jedes Mal, wenn Sie die Nachricht öffnen.
Wenn Sie die Nachricht weiterleiten, hängt Outlook an file
die Bild-URI ein Protokoll an:
<img src="file://ssl.gstatic.com/ui/v1/icons/common/x_8px.png">
Und wenn der Empfänger Outlook hat, tritt bei ihm natürlich dasselbe Problem auf (das file
Protokoll hilft nicht, es bestätigt nur, dass Outlook denkt, es handele sich um einen Verweis auf eine Datei, auf die über die Windows-Dateifreigabe zugegriffen werden kann).
Dies scheint versionsunabhängig zu sein – es ist ein Problem mit allen Versionen von Outlook bis 2016.
Im Internet finden sich zwei mögliche „Antworten“ auf diese Frage:
- Fügen Sie Ihrer Hosts-Datei einen DNS-Eintrag hinzu, um ssl.gstatic.com in 127.0.0.1 aufzulösen.
- Deaktivieren des automatischen Downloads von Bildern in Outlook
Dies sind keine Antworten. Dies sind Workarounds mit großen Nachteilen:
- Der DNS-Eintrag löst das Problem für Outlook, verhindert aber, dass Sie über einen Webbrowser auf Google-Dienste zugreifen können.
- Das Deaktivieren des Downloads von Bildern löst das Problem für Outlook, ist aber für jeden, der vielen Adressen vertraut, sehr ärgerlich, sodass Sie den Download/die Anzeige von Bildern nicht manuell auswählen müssen.
Leider hat Google kein Interesse daran, diese Bild-URI zu korrigieren (obwohl es das einzige Bild mit einer Nicht-Protokoll-URI ist – Gmail-Nachrichten enthalten ansonsten jede Menge anderer Bilder, die alle das Protokoll enthalten). Das ist jedoch verständlich, da die Nicht-Protokoll-Version in Browsern problemlos funktioniert.
Microsoft sitzt im selben Boot und behauptet, dass sie zuerst die nicht protokollierte Version verwendet haben, um Links zur Windows-Dateifreigabe anzuzeigen, sodass sie das Problem auch nicht beheben werden.
Niemand möchte also das eigentliche Problem beheben, das schon seit Jahren besteht!
Antwort1
Ich habe Endbenutzer darüber aufgeklärt, warum dies geschieht: Outlook sucht nach einer externen Datei, kann die Daten jedoch nicht abrufen (für den Endbenutzer leicht zu verstehen).
Ich habe ihnen Anweisungen gegeben, die E-Mail zu bearbeiten > das beschädigte Bild auszuwählen > es zu löschen > die E-Mail zu speichern.
Beim Öffnen dieser E-Mail gibt es keine Probleme mehr, da file://ssl.gstatic.com/ui/v1/icons/common/x_8px.png
in dieser E-Mail nichts mehr vorhanden ist.
Ich bevorzuge diese Methode, da sie den Benutzern einige der Outlook-Funktionen (E-Mail-Bearbeiten) näherbringt, sie darüber informiert, dass es sich nicht um ein internes Problem handelt, und weil wir so wenige dieser E-Mails erhalten (ein Vorfall alle 6 Monate). Natürlich weiß ich nicht, wie viele Leute das Problem haben und darüber schweigen, aber ich könnte ein PowerShell-Skript ausführen, um das herauszufinden :)
Antwort2
Die einzigerealDie Antwort, die ich gefunden habe, ist die Verwendung eines VBA-Skripts, das ich unten teilen werde. Ich hoffe, dass jemand, der schlauer ist als ich (oder zumindest jemand mit mehr Zeit), daraus ein echtes Outlook-Plug-in machen kann. Es ist mir egal, ob Sie damit Geld verdienen, aber es wäre nett, wenn mir der Originalcode zugeschrieben würde, auch wenn er ziemlich einfach ist.
Warnung: Wenn Sie mit Visual Basic for Applications (VBA) nicht vertraut sind, sollten Sie hier aufhören oder jemanden finden, der damit vertraut ist.
Ich werde nicht darauf eingehen, wie man das Entwicklermenü in Outlook aktiviert, aber Sie benötigen es, um Visual Basic zu öffnen.
- Gehen Sie in Visual Basic zu:
Project1
Microsoft Outlook Objects
ThisOutlookSession
- Fügen Sie darunter den folgenden Code hinzu:
' 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
- Klicken Sie auf das Symbol Speichern
- Starten Sie Outlook neu
- Sie müssen
Enable Macros
jedes Mal klicken, wenn Sie Outlook öffnen (sonst wird der Code nicht ausgeführt)
Dadurch werden alle neuen Nachrichten korrigiert, aberEs werden keine alten Nachrichten repariert.Sie haben sich möglicherweise in Ihrem Posteingang versteckt (sie frieren Outlook immer noch für 30 Sekunden ein usw.). Ich habe versucht, Code zu erstellen, um alle Nachrichten, die Sie lesen möchten, zu reparieren, aber das hat nicht funktioniert. Ich vermute, dass Outlook diese Art von Änderungen nicht zulässt, wenn Sie eine Nachricht öffnen, um sie zu lesen.
Bitte lassen Sie mich wissen, ob das für Sie funktioniert oder nicht – ich habe jede Menge Code für andere Zwecke, deshalb habe ich das hier irgendwie entfernt (ich habe es also nicht in dieser ursprünglichen Form technisch getestet).