Mail-Datum per IMAP unterscheidet sich grundlegend von RoundCube

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Jongleur

Benutzer
Registriert
06. Feb. 2013
Beiträge
217
Reaktionspunkte
6
Punkte
18
Hallo,

ich verwendet meine DiskStation als Mailserver und habe eingerichtet, dass bestehende Mails meines alten GMail-Accounts abgeholt und mit in mein Postfach gelegt werden. Das funktioniert eigentlich auch soweit, die Mails werden in Roundcube mit dem tatsächlichen originalem Datum dargestellt.
Schaue ich jetzt allerdings per IMAP Client (Macosx oder iPhone) in das Postfach haben die vielen tausend Mails alle das Datum von heute und die Uhrzeit des Abholens aus dem GMail-Postfach. Was läuft hier falsch? ich möchte natürlich auch per IMAP das originale Datum der jeweiligen Mail sehen. :(

Viele Grüße,
Jongleur
 
schau dir eine solche Mail mal im Quelltext an. Das originale Datum ist schon vorhanden, aber dein Client zeigt den letzten Received-Header als Datum der Mail an. Das ist dann das Datum wo die Mails von gmail abgeholt wurden. Das sollte man im Mailclient einstellen können, welchen Datum-Header er als Datum der Mail nimmt. Da kann der Server (DS) nichts dafür, das ist eine reine Client-Einstellung
 
Ok, ich gehe aber mal davon aus, dass man solche Dinge in einem iPhone o.ä. nicht einstellen kann. Wäre mir zumindest neu. Ich habe das Problem mitlerweile anders gelöst, ich habe die Mails per Drag & Drop im Mail-Programm von MacOSX einfach vom GMail-Account auf das IMAP-Konto des Synologys gezogen. Siehe da, die Mail-Datümer bleiben erhalten. :)
Aber danke trotzdem für die Erläuterung, ich lerne immer gern dazu.
 
Ok, ich gehe aber mal davon aus, dass man solche Dinge in einem iPhone o.ä. nicht einstellen kann. Wäre mir zumindest neu. Ich habe das Problem mitlerweile anders gelöst, ich habe die Mails per Drag & Drop im Mail-Programm von MacOSX einfach vom GMail-Account auf das IMAP-Konto des Synologys gezogen. Siehe da, die Mail-Datümer bleiben erhalten. :)
Aber danke trotzdem für die Erläuterung, ich lerne immer gern dazu.
jap beim Drag und Drop wird keine Header Recieved Zeile erstellt. Drum klapprt das dann. Bist du sicher, dass man das im IPhone ned einstellen kann? Ist eigentlich noch eine recht wichtige Einstellung ;-)
 
Ich habe zwar das gleiche Problem, jedoch noch keine Lösung gefunden.
Da ich beim Einrichten der Mailstation einige Probleme hatte, habe ich die Mails mit Apple Mail von meinen Konten abgerufen und sie von dort auf die Ds geschoben.

In Roundcube wird nun bei allen Mails das korrekte Eingangsdatum angezeigt, jedoch nicht in Apple Mail und auch nicht auf meinem LG Smartphone.
Hat jemand irgendeine Idee, wei ich die Mails reparieren kann?

EDIT: Selbst wenn ich die Mail zu google Mail rüberschiebe, habe ich das Problem. Zunächst werden die Mails falsch sortiert. Schaue ich dann in den Header, wird das korrekte Datum angezeigt.

EDIT2: Im Mail Header steht zwei mal "Received"...
Zuerst steht dort, dass meine DS meine Mails über Pop3 bei Strato abgeholt hat + Datum und danach folgt das richtige Datum. Also hat die dämliche DS die Header gekillt!
So langsam nervt mich Synology mit den Fehlern in der Software gewaltig. Hat jemand eine Idee, wie ich die Header wieder reparieren kann?
 
Zuletzt bearbeitet:
wenn dort zwei Received Header stehen, dann ist es dem Client überlassen welchen er auswerten will. Das kann man Synology nicht wirklich vorwerfen. Die DS hat mit Sicherheit keine Received-Header gekillt, sondern allenfalls einen zweiten angelegt. Und dann fällt ein Client u.U. auf die Schnauze
 
Ja genau. Die DS hat einen zweiten erstellt. Vollkommen unnötig. GMail hat keinen zweiten erstellt, Apple Mail nicht und meine Smartphones auch nicht. Nur die DS. Ob das Problem bei Synology liegt oder bei Roundcube, ist mir egal. Fakt ist, dass das nicht normal ist, weil die Header überlaufen würden, wenn da jeder ein neues Eingangsdatum reinschreibt.
Mittlerweile habe ich Apple Mail zwar so eingestellt, dass er den richtigen "Received" zum Sortieren nimmt, aber das ist auf Smartphones nicht möglich.

Falls irgend jemand eine Ahnung hat, wie ich die Header mit einem Programm wieder hinbekomme, wäre ich für einen Tipp sehr dankbar. habe zwar gelesen, dass es händisch mit Textwrangler gehen soll, aber bei 3000 eMails ist das nicht möglich.
 
Wieso unnötig? Gemäss RFC muss das so sein. Jedes System muss einen Received Header setzen. Das Problem ist dein "dummer" Client bei dem du nicht sagen kannst welcher Received verwendet werden soll. Wirklich das ist kein Fehler von Synology, sondern wenn schon ein Fehler deines Smartphones
Theoretisch könntest du mittels etwas Shellcode durch alle Mails durchgehen und die unerwünschten Header löschen z.B.
Code:
find /home/DEIN_USER/.Maildir -type -f -exec sed -i '/^Received: from DER_SERVER.*$/d' '{}' \;
Code wie immer ohne Garantie und auf eigenes Risiko. Würde erstmal ein paar solche Mails in ein Testverzeichnis kopieren und dort den Code mal testweise drüberlassen
 
Habe mal ein bisschen mit Testmails gespielt. Dazu habe ich den letzten Received Header aus den Mails des Forums gelöscht. Funzt einwandfrei
Code:
root@mail1:~# find /root/test/ -type f -exec grep -H 'Received: from smtprelay01.ispgateway.de' '{}' \; | wc -l
263
root@mail1:~# find /root/test/ -type f -exec sed -i '/^Received: from smtprelay01\.ispgateway\.de.*$/d' '{}' \;
root@mail1:~# find /root/test/ -type f -exec grep -H 'Received: from smtprelay01.ispgateway.de' '{}' \; | wc -l
0
vor dem RegExp sind 263 Treffer (Mails) mit diesem Header-Muster vorhanden. Nach dem replace 0
Ergo works as designed :-)
Du musst einzig aufpassen beim Kriterium für den zu löschenden Header. Das Muster sollte möglichst genau sein. Es wäre es eine sehr schlechte Idee z.B. so was zu machen
Code:
find /root/test/ -type f -exec sed -i '/^Received:.*$/d' '{}' \;
damit würden alle Received Header gelöscht ;-)
 
Wieso unnötig? Gemäss RFC muss das so sein. Jedes System muss einen Received Header setzen. Das Problem ist dein "dummer" Client bei dem du nicht sagen kannst welcher Received verwendet werden soll. Wirklich das ist kein Fehler von Synology, sondern wenn schon ein Fehler deines Smartphones

Ich habe wirklich keine Ahnung von der Materie, aber wenn Du sagst, dass es so festgelegt ist, dass Recieved Header gesetzt werden müssen, dann ist das wohl so.
Nur dann machen es alle meine Smartphones (mit iOS und Android), Mailprogramme (Apple Mail) und Webmaildienste falsch. Es gab nie ein Problem, bis ich die DS dazwischen geschaltet habe.

Danke, dass Du Dir die Mühe gemacht hast, das mit den Codes auszuprobieren. Ich habe davon allerdings "0"Ahnung und kann das vergessen.
Ich muss jetzt mal aufhören zu schreiben, weil mich das Thema echt tierisch aufregt und ich die DS sonst gleich aus dem Fenster werfe. Ist zwar nicht die erste, aber definitiv die letzte, die diesen Tod stirbt.
 
I
Nur dann machen es alle meine Smartphones (mit iOS und Android), Mailprogramme (Apple Mail) und Webmaildienste falsch. Es gab nie ein Problem, bis ich die DS dazwischen geschaltet habe.
.
das sind aber alleskeine MTA also müssen sie auch nicht zwangsläufig Header stempeln. Ich nehme mal an du hast die DS reingehängt und diese dann auf deine externen Konten losgelassen. Wahrscheinlich mit fetchmail oder getmail. Damit wird die DS zum MTA bzw getmail oder fetchmail. Wenn du die Mails direkt mit einem MUA (Thunderbird oder Apfelmail) abholst gibt es den Header nicht, weil dein Mailprogramm kein MTA ist.
 
So, Puls wieder im aeroben Bereich. :-)

Genau. Habe hier im Forum und auf youtube ein paar Dinge zum Mailserver und zur Mailstation gelesen und sie dann eingerichtet. Emails werden mit pop3 von meinen Konten abgerufen und dann dort gelöscht. Sie befinden sich also nur noch auf der DS. Meine Telefone, Tablets und Rechner sollten dann die Mails von dort abholen. Das funktioniert auch perfekt. Bis auf das große Problem mit dem Datum.

Received: from pop3.strato.de [81.169.145.131] by DiskStation with POP3 (fetchmail-6.3.17) for <paul@localhost> (single-drop); Wed, 28 Aug 2013 00:12:40 +0300 (EEST)

Ich gehe also davon aus, dass die Ds die Mails mit fetchmail abholt. Ich habe davon absolut keine Ahnung, aber es sieht so aus, als könne ich mich -dank meiner DS- mal wieder in ein Thema reinarbeiten, für das ich gar keine Zeit habe. Habe eben mal Wikipedia genutzt. Gefällt mir gar nicht, was dort über fetchmail steht...

Kannst Du mir bitte sagen, was ich im Terminal machen muss, um die falschen Einträge in den Mailheadern zu löschen?
Falls es doch kein Problem ist fetchmail zu nutzen... Was muss ich im Terminal machen damit keine Header mehr geändert werden?

Danke schonmal für Deine Mühe und vor allem Geduld!


EDIT: Wäre das richtig:
find /home/paul/.Maildir -type -f -exec sed -i '/^Received: from pop3.strato.de*$/d' '{}' \;
 
EDIT: Wäre das richtig:
find /home/paul/.Maildir -type -f -exec sed -i '/^Received: from pop3.strato.de*$/d' '{}' \;
bei (.) in RegExp Mustern musst du aufpassen. Die haben eine besondere Bedeutung. Das steht für ein beliebiges Zeichen. Wenn du den Punkt als Punkt in einem RegExp brauchst dann musst du \. schreiben, also dem RegExp mittels \ mitteilen: hei das folgende ist wirklich ein Punkt und soll nicht für ein beliebiges Zeichen stehen
Ich würde allenfalls das Muster noch genauer machen und by Diskstation mit reinnehmen
Code:
find /home/paul/.Maildir -type -f -exec sed -i '/^Received: from pop3\.strato\.de.* by DiskStation.*$/d' '{}' \;
ich würde dir aber wärmstens empfehlen das erstmal nur auf ein Testverzeichnis mit Mails loszulassen und nicht auf dein produktives Verzeichnis

Wie gesagt du kannst nichts machen, damit diese Header nicht gesetzt werden. Die müssen gesetzt werden.
Das Problem hast du ja eigentlich nur wenn du uralte Mails abholst. Wenn der fetchmail alle 10min die Postfächer leert fällt diese Diskrepanz in der Empfangszeit kaum auf. Sind ja dann maximal 10min ;-)
 
Perfekt. Vielen Dank!

So wie ich die Sache verstanden habe, werden so alle Mails des Nutzer "paul" bearbeitet, weil eben das komplette ".Maildir" "ausgewählt" ist. Ich habe nämlich im eigentlichen Posteingang keine eMails. Sie liegen alle in Unterordnern. Ein Ordner pro Account.
Soll ich also einen Testbenutzer anlegen und das ".Maildir" Verzeichnis von meinem Nutzer rüberkopieren?
 
ich würds so machen
Code:
mkdir /root/test && rsync -av /home/paul/.Maildir /root/test/
und dann den Test über den Maildir in root lassen

Jap find geht rekursiv durch alle Verzeichnisse unterhalb von .Maildir durch, damit sollten alle Mails auch in Unterordnern erwischt werden
 
Ich verstehe den ersten Satz nicht...

Aber... Da ich immer noch 2 aktuell Backups von der kompletten DS habe, werde ich einfach mal den Code aus #13 in den Terminal (das Terminal) tippen und sehen, was passiert. Im Notfall spiele ich den Ordner dann zurück. Ups... Mache ich morgen. Muss zur Arbeit :-)
Melde mich dann nochmals. Danke auf jeden Fall mal bis hier her für Deine tolle Hilfe!
 
der erste Satz soll dir ein Testverzeichnis mit den Mails machen, damit du dir nicht die produktive Mailbox versaust beim Test :-)
 
Ah ja... "mkdir"... Hab schon ewig nicht mehr mit dem Terminal gearbeitet...

Habe mich eben über SSH mit meinem admin auf der DS eingeloggt und den Befehl in's Terminal kopiert.
find /home/paul/.Maildir -type -f -exec sed -i '/^Received: from pop3\.strato\.de.* by DiskStation.*$/d' '{}' \;
Antwort:
find: invalid argument '-f' to '-type'

Was habe ich falsch gemacht?

EDIT1: Im Terminal steht "DiskStation". Da müsste aber "root@" stehen, oder?
EDIT2: Habe mich mit "root" eingeloggt. Gleiche Fehlermeldung.
EDIT3: Ich habe jetzt mal das .Maildir Verzeichnis zum admin kopiert, mich über SSH als admin eingeloggt und den Befehl nochmals ausprobiert. Es klappt leider immer noch nicht.
Habe jetzt mal eine Maildatei runtergeladen, sie mit dem Texteditor geöffnet, den unerwünschten Teil im Header entfernt und sie wieder auf die DS geladen. Das klappt ohne Probleme. Also bekomme ich meine Mail auf jeden Fall wieder hin. Das beruhigt ungemein!
EDIT4: Natürlich bin ich noch an der Terminal-Lösung interessiert :-)
 
Zuletzt bearbeitet:
ups sorry Fehler beim Copy&Paste gemacht (mea culpa). Korrekt wäre -type f (also f ohne - )
Bei meinem ersten Bsp habe ich es noch korrekt geschrieben und dann einfach dein Bsp mittels c&p genommen und zu wenig geschaut ob deine Zeile auch ganz korrekt ist :-)
 
Ja macht ja nichts. Wer nicht hilft macht keine Fehler!
Folgendes ist mir aufgefallen. Vor dem "/home" muss scheinbar noch "volume1" stehen. Dann rattert die DS los.
Leider hat sie alle Recieved gelöscht. Also auch die in denen gar nicht "strato.de" stand.
Merkwürdigerweise hat Apple Mail dann das richtige Datum angezeigt. Roundcube hat die Mails jedoch gar nicht mehr geöffnet.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat