Hier ist ein mozdev-Projekt, das für andere hilfreich sein kann, die auf dieser Seite nach einer Thunderbird-Lösung suchen:
Ich arbeite an einer Webanwendung, die E-Mail-Nachrichten in einem Thread-Format analysiert und anzeigt (unter anderem). E-Mails können von einer beliebigen Anzahl verschiedener E-Mail-Clients kommen und entweder im Text- oder im HTML-Format vorliegen.
Da die meisten Leute dazu neigen, einen Top-Beitrag zu schreiben, möchte ich die duplizierte Nachricht in einer E-Mail-Antwort auf ähnliche Weise wie Google Mail ausblenden können (z. B. "zitierten Text anzeigen").
Es ist etwas schwierig, zu bestimmen, welcher Teil der Nachricht die Antwort ist. Persönlich verwende ich "& gt;" Trennzeichen am Anfang des zitierten Textes, wenn ich antworte. Ich habe einen Regexp erstellt, der nach diesen Zeilen sucht und ein div um sie legt, damit einige JS diesen Textblock ausblenden oder anzeigen können.
Ich habe dann bemerkt, dass Outlook standardmäßig nicht die Zeichen "& gt;" verwendet, sondern fügt einfach einen Header-Block über der Antwort mit der Zusammenfassung der Header (From, Subject, Date, etc.) hinzu. Die Antwort ist unberührt. Ich kann mich darauf einstellen und den Rest der E-Mail verstecken, wobei ich davon ausgehe, dass es sich um ein Top-Zitat handelt.
Ich habe dann Thunderbird angeschaut, und es verwendet "& gt;" für Text und <blockquote
& gt; für HTML-Mails. Ich habe immer noch nicht untersucht, was Apple Mail macht, was Notes tut oder was andere der Mail-Clients dort tun.
Werde ich für jeden einzelnen Kunden einen speziellen Fall regexp schreiben? oder fehlt mir etwas?
Alle Vorschläge, Beispielcode oder Hinweise auf Bibliotheken von Drittanbietern sehr geschätzt!
Es wird ziemlich schwierig sein, die Art und Weise, wie Gmail es tut, zu duplizieren, da es nicht darauf ankommt, ob es ein zitiertes Stück ist oder nicht, wie Zac sagt, es scheint sich nur um das diff zu kümmern.
Es ist eigentlich ziemlich schwer, das zu 100% richtig zu machen. Nur-Text-E-Mail ist "verlustbehaftet", es ist völlig möglich für Sie,
zu senden %Vor%Das kann als etwas wie
codiert werden %Vor%Und dann wird als
dekodiert %Vor%Es ist nicht von einer Inline-Antwort zu unterscheiden.
Das ist E-Mail, also gibt es viele Variationen. E-Mails werden normalerweise mit etwa 74 Zeichen umbrochen, und die Codierungsschemata können sich unterscheiden. Es ist eine echte PITA. Wenn Sie auf die HTML-Version zugreifen können, werden Sie wahrscheinlich besser nach Zitat-Tags und Ähnlichem suchen können. Eine andere Idee wäre, sowohl den reinen Text als auch die HTML-Version zu analysieren, um zu versuchen, die Grenzen zu bestimmen.
Außerdem ist es am besten, nur bestimmte Client-Hacks zu planen. Sie alle konstruieren Mime-Nachrichten unterschiedlich, sowohl in der Struktur als auch im Header-Inhalt.
Edit: Ich sage das mit der Erfahrung, ein E-Mail-Verarbeitungssystem zu schreiben und zu sehen, wie mehrere Leute versuchen, das, was Sie tun, zu tun. Es hat immer nur "ok" Ergebnisse.
Soweit ich feststellen kann, kümmert sich Google Mail nicht um vorangestellte Zeilen oder Abschnittsüberschriften, außer um sie zu ignorieren. Wenn die Textzeilen früher im Thread angezeigt wurden und dann erneut angezeigt werden, wird davon ausgegangen, dass sie zitiert wurden. Wenn Sie beispielsweise mehrere Nachrichten senden und Ihre Signatur nicht ändern, wird die Signatur als in Anführungszeichen gesetzt angesehen. Wenn Sie bereits mit dem '& gt;' Präfix, ein einfacher Unterschied sollte den Rest machen. Keine Notwendigkeit, Lust zu haben.
Ich arbeite an einer Webanwendung, die E-Mail-Nachrichten in einem Thread-Format analysiert und anzeigt (unter anderem). E-Mails können von einer beliebigen Anzahl verschiedener E-Mail-Clients kommen und entweder im Text- oder im HTML-Format vorliegen.
Da die meisten Leute dazu neigen, einen Top-Beitrag zu schreiben, möchte ich die duplizierte Nachricht in einer E-Mail-Antwort auf ähnliche Weise wie Google Mail ausblenden können (z. B. "zitierten Text anzeigen").
Es ist etwas schwierig, zu bestimmen, welcher Teil der Nachricht die Antwort ist. Persönlich verwende ich "& gt;" Trennzeichen am Anfang des zitierten Textes, wenn ich antworte. Ich habe einen Regexp erstellt, der nach diesen Zeilen sucht und ein div um sie legt, damit einige JS diesen Textblock ausblenden oder anzeigen können.
Ich habe dann bemerkt, dass Outlook standardmäßig nicht die Zeichen "& gt;" verwendet, sondern fügt einfach einen Header-Block über der Antwort mit der Zusammenfassung der Header (From, Subject, Date, etc.) hinzu. Die Antwort ist unberührt. Ich kann mich darauf einstellen und den Rest der E-Mail verstecken, wobei ich davon ausgehe, dass es sich um ein Top-Zitat handelt.
Ich habe dann Thunderbird angeschaut, und es verwendet "& gt;" für Text und %code% & gt; für HTML-Mails. Ich habe immer noch nicht untersucht, was Apple Mail macht, was Notes tut oder was andere der Mail-Clients dort tun.
Werde ich für jeden einzelnen Kunden einen speziellen Fall regexp schreiben? oder fehlt mir etwas?
Alle Vorschläge, Beispielcode oder Hinweise auf Bibliotheken von Drittanbietern sehr geschätzt!
Soweit ich feststellen kann, kümmert sich Google Mail nicht um vorangestellte Zeilen oder Abschnittsüberschriften, außer um sie zu ignorieren. Wenn die Textzeilen früher im Thread angezeigt wurden und dann erneut angezeigt werden, wird davon ausgegangen, dass sie zitiert wurden. Wenn Sie beispielsweise mehrere Nachrichten senden und Ihre Signatur nicht ändern, wird die Signatur als in Anführungszeichen gesetzt angesehen. Wenn Sie bereits mit dem '& gt;' Präfix, ein einfacher Unterschied sollte den Rest machen. Keine Notwendigkeit, Lust zu haben.
Es wird ziemlich schwierig sein, die Art und Weise, wie Gmail es tut, zu duplizieren, da es nicht darauf ankommt, ob es ein zitiertes Stück ist oder nicht, wie Zac sagt, es scheint sich nur um das diff zu kümmern.
Es ist eigentlich ziemlich schwer, das zu 100% richtig zu machen. Nur-Text-E-Mail ist "verlustbehaftet", es ist völlig möglich für Sie,
zu senden %Vor%Das kann als etwas wie
codiert werden %Vor%Und dann wird als
dekodiert %Vor%Es ist nicht von einer Inline-Antwort zu unterscheiden.
Das ist E-Mail, also gibt es viele Variationen. E-Mails werden normalerweise mit etwa 74 Zeichen umbrochen, und die Codierungsschemata können sich unterscheiden. Es ist eine echte PITA. Wenn Sie auf die HTML-Version zugreifen können, werden Sie wahrscheinlich besser nach Zitat-Tags und Ähnlichem suchen können. Eine andere Idee wäre, sowohl den reinen Text als auch die HTML-Version zu analysieren, um zu versuchen, die Grenzen zu bestimmen.
Außerdem ist es am besten, nur bestimmte Client-Hacks zu planen. Sie alle konstruieren Mime-Nachrichten unterschiedlich, sowohl in der Struktur als auch im Header-Inhalt.
Edit: Ich sage das mit der Erfahrung, ein E-Mail-Verarbeitungssystem zu schreiben und zu sehen, wie mehrere Leute versuchen, das, was Sie tun, zu tun. Es hat immer nur "ok" Ergebnisse.
Das erste, was ich tun möchte, ist, den ganzen Leerraum auszublenden, oder den Leerraum zwischen jedem Wort auf 1 zu reduzieren, und Sonderzeichen aus beiden Blöcken, dann suchen Sie nach dem alten in dem neuen.
>Hier ist ein mozdev-Projekt, das für andere hilfreich sein kann, die auf dieser Seite nach einer Thunderbird-Lösung suchen: