Thunderbird lädt externe Bilder nicht von meinem vServer

stefkey

Member
Hi,

wenn ich ein Mail mit Bildern (eine Art Newsletter) versende läd Thunderbird diese externen Inhalte nicht. Den Button in Thunderbird betätige ist, trotzdem zeigt es keine Bilder. Wie suche ich da den Fehler? In der nginx-log finde ich keine Hinweise. Mein vServer muss ja scheinbar den Abruf blockieren.

In der Thunderbird Fehlerkonsole finde ich auch nichts.
 
Die Nachricht selektieren, dann auf den Button "Mehr" > "Quelltext anzeigen".
Dann siehst du schon mal, ob die Links auch richtig gesetzt sind.

Kannst den Inhalt ja hier posten.
 
Danke, cooler Tip! An den Links kann es ja theoretisch nicht liegen, andere Clients und auch Webmailer zeigen alles an. Und praktisch auch nicht, denn wenn ich einen Link aus dem Quelltext nehme und im Firefox öffne zeigt es mir das Bild. Sehr seltsam finde ich das? Ich dachte schon an einen Thunderbird-Bug, aber andere Newsletter funktionieren! Es muss an der Serverkonfiguration liegen, irgendetwas schmeckt dem Thunderbird nicht. Hat jemand eine Idee?
 
Kannst Du entweder einen entsprechenden Link posten, oder mir eine entsprechende Testmail an rootservice_at_gmail_com schicken?
Ich habe da die Vermutung, dass die Sameorigin-Policy zuschlägt...
 
geil, sameorigin sagt mir was :-)
... ich schau mal ob ich weiter komme damit, ansonsten sende ich dir den Newsletter innerhalb der nächsten 1-2 Stunden.
 
OK, ein Problem sind die fehlenden Content-Security-Policy, Access-Control-Allow-Origin und X-Frame-Options Header und das zweite Problem ist, dass die Bilder per http statt https eingebunden sind und Thunderbird den Redirects aus Sicherheitsgründen nicht folgt.


BTW: Der <head>-Bereich im HTML kommt doppelt vor.
 
Danke sehr!

http > https und der doppelte Head habe ich gerade korrigiert. Es funktioniert damit noch nicht.

Müssen die Content-Security-Policy Access-Control-Allow-Origin und X-Frame-Options Header in den E-Mail-Header? Ich finde dazu immer nur Webserver Konfigurationen.
 
Die Header muss der Webserver liefern.
Für Apache könnte es beispielsweise so aussehen:
Code:
<IfModule headers_module>
    Header set Access-Control-Allow-Methods "POST, GET, OPTIONS"
    Header set Access-Control-Allow-Origin "null"
    <IfModule setenvif_module>
        SetEnvIf Origin ":" IS_CORS
        Header set Access-Control-Allow-Origin "*" env=IS_CORS
    </IfModule>
    Header set Access-Control-Max-Age "600"
    Header set Upgrade-Insecure-Requests "1"
    Header set Referrer-Policy "origin-when-cross-origin"
    Header set Content-Security-Policy "default-src 'self'; font-src 'self' *.gstatic.com; frame-ancestors 'self'; img-src 'self' data: *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.googleapis.com *.gstatic.com; style-src 'self' 'unsafe-inline' 'unsafe-eval' *.googleapis.com *.gstatic.com; upgrade-insecure-requests; referrer origin-when-cross-origin;"
    Header set X-Content-Security-Policy "default-src 'self'; font-src 'self' *.gstatic.com; frame-ancestors 'self'; img-src 'self' data: *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.googleapis.com *.gstatic.com; style-src 'self' 'unsafe-inline' 'unsafe-eval' *.googleapis.com *.gstatic.com; upgrade-insecure-requests; referrer origin-when-cross-origin;"
    Header set X-Frame-Options "SAMEORIGIN"
    Header set X-Content-Type-Options "nosniff"
    Header set X-XSS-Protection "1; mode=block"
    Header set X-DNS-Prefetch-Control "on"
    Header set X-UA-Compatible "IE=Edge"
</IfModule>
 
Danke, ich habe nginx am laufen. Dort habe ich folgende Zeilen eingesetzt, leider bringt das nichts.

Code:
    add_header Access-Control-Max-Age "600";
    add_header Upgrade-Insecure-Requests "1";
    add_header Referrer-Policy "origin-when-cross-origin";
    add_header Content-Security-Policy "default-src 'self'; font-src 'self' *.gstatic.com; frame-ancestors 'self'; img-src 'self' data: *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.$
    add_header X-Content-Security-Policy "default-src 'self'; font-src 'self' *.gstatic.com; frame-ancestors 'self'; img-src 'self' data: *; script-src 'self' 'unsafe-inline' 'unsafe-eval' $
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-DNS-Prefetch-Control "on";
    add_header X-UA-Compatible "IE=Edge";

Muss morgen weiter schauen...
 
Die Header werden jetzt korrekt vom Webserver geliefert.
Allerdings sind die Links und Bilder in der Mail von 23:50 Uhr immernoch http statt https
 
Die Header werden jetzt korrekt vom Webserver geliefert.
Zumindest fast:
Die beiden Header X-Frame-Options und X-XSS-Protection werden doppelt ausgeliefert, dürfen aber nur einmal ausgeliefert werden.

Der Header Content-Security-Policy muss einmal mit X- und einmal ohne vorhanden sein.

Der Header Access-Control-Allow-Origin "*" fehlt noch.


Tool zum selber prüfen der ausgelieferten Header: https://redbot.org/
 
Last edited by a moderator:
Hi, danke für die Header-Infos, das werde ich für alle vhosts einrichten.

Das Problem konnte ich jetzt gerade lösen. Ich nutze ein LetsEncrypt Zertifikat. Der Thunderbird-Cache hat mich reingelegt. Um den Fehler einzukreisen, muss ich nämlich bei jeder vhost Änderung den Thunderbird-Cache leeren und Thunderbird schließen und Neustarten. Erst dann kann ich feststellen ob eine nginx vhost Änderung hilft oder nicht. Nach einigem hin und her konnte ich soeben rausfinden das folgende Zeile in der nginx vhost Abhilfe schafft:

Code:
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";

Danke für die Header-Tips und sonst auch.
 
Das mit dem TB-Cache ist gut zu wissen, danke für die Rückmeldung.


Bezüglich der ssl-cipher könnte diese Liste etwas geeigneter sein (eventuell müssen für nginx die Leerzeichen durch Doppelpunkt ersetzt werden):
Code:
"EECDH+ECDSA+CHACHA20 EECDH+CHACHA20 EECDH+ECDSA+AESGCM EECDH+AESGCM EECDH+ECDSA+AES256 EECDH+AES256 EECDH+ECDSA+AES128 EECDH+AES128 EDH+CHACHA20 EDH+AESGCM EDH+AES256 EDH+AES128 !CAMELLIA !SEED !IDEA !RC2 !RC4 !aDSS !kECDHe !kECDHr !kDHd !kDHr !eNULL !aNULL !MEDIUM !LOW !EXPORT"
 
Last edited by a moderator:
Danke Joe User!

Das Thunderbird-Bilder Problem ist ja gelöst. Unabhängig davon habe ich Rückmeldung das die Seite von 2 Uninetzen aus und von anderen 1-2 größeren Einrichtungen nicht geöffnet wird. Kann es mit den Header Einstellungen zu tun haben?

Ich kommentiere diese Änderungen der letzten Tage jetzt erstmal aus und lasse prüfen ob die Seite dann wieder erreichbar ist. Außerdem lasse ich mal prüfen ob die Seite über http: statt https: erreichbar ist. Die Weiterleitung auf https habe ich dazu rausgenommen. Vielleicht hast du ja einen weitere Tip wie ich vorgehen kann.

Dank dir und Grüße, stekfey
 
Back
Top