Discussion:
Text in Mail einfügen
(zu alt für eine Antwort)
Bernd
2021-08-24 07:54:13 UTC
Permalink
Hi,

nein, nicht einfach echo ... ;-)

gegeben ist eine ankommende Mail im SMTP-Format. Dort hinein möchte ich
einen Text einfügen der dann im Mail-Client an oberster Stelle im
Mail-Body angezeigt wird, und zwar unabhängig davon ob es sich um eine
HTML- oder eine Klartext-Mail handelt.

Ganz so einfach scheint das aber im Zeitalter der MIME-Mails nicht mehr
zu sein ...

Gibt es dazu fertige Tools (nach welchen Stichworten sollte ich suchen),
oder welche Tipps könnt ihr mir geben?

Besten Dank

Bernd
Stefan+ (Stefan Froehlich)
2021-08-24 09:57:09 UTC
Permalink
Post by Bernd
gegeben ist eine ankommende Mail im SMTP-Format. Dort hinein
möchte ich einen Text einfügen der dann im Mail-Client an oberster
Stelle im Mail-Body angezeigt wird, und zwar unabhängig davon ob
es sich um eine HTML- oder eine Klartext-Mail handelt.
Ganz so einfach scheint das aber im Zeitalter der MIME-Mails nicht
mehr zu sein ...
Nein, ausser Du kannst unverrückbare Annahmen über das Format der
ankommenden Mail treffen.
Post by Bernd
Gibt es dazu fertige Tools (nach welchen Stichworten sollte ich
suchen), oder welche Tipps könnt ihr mir geben?
"An oberster Stelle im Mail-Body angezeigt" ist ja per se schon
problematisch: Was machst Du, wenn das angezeigte Element HTML oder
womöglich gar JPG oder PDF ist?

Ich würde vmtl. in der Programmiersprache meiner Wahl die ankommende
Mail durch deren MIME-Bibliothek jagen, abhängig vom Typ des
obersten Containers entweder ein Element darin oder einen weiteren
Container ergänzen und das Ergebnis wieder in Klartext
zurückwandeln. Reine plain-text Mails ließen sich ggf. als
Sonderfall behandeln.

MIME-Parser wird es für so ziemlich alle gängigen Sprachen geben,
ein fertiges Tool für genau diese Aufgabenstellung eher nicht.

Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Welch ein lahmer Gedanke: Stefan!
(Sloganizer)
Bernd
2021-08-24 13:22:03 UTC
Permalink
Post by Stefan+ (Stefan Froehlich)
Post by Bernd
gegeben ist eine ankommende Mail im SMTP-Format. Dort hinein
möchte ich einen Text einfügen der dann im Mail-Client an oberster
Stelle im Mail-Body angezeigt wird, und zwar unabhängig davon ob
es sich um eine HTML- oder eine Klartext-Mail handelt.
Ganz so einfach scheint das aber im Zeitalter der MIME-Mails nicht
mehr zu sein ...
Nein, ausser Du kannst unverrückbare Annahmen über das Format der
ankommenden Mail treffen.
Schöne neue Welt ;-)
Post by Stefan+ (Stefan Froehlich)
Post by Bernd
Gibt es dazu fertige Tools (nach welchen Stichworten sollte ich
suchen), oder welche Tipps könnt ihr mir geben?
"An oberster Stelle im Mail-Body angezeigt" ist ja per se schon
problematisch: Was machst Du, wenn das angezeigte Element HTML oder
womöglich gar JPG oder PDF ist?
Naja, DAS sollte ja dem zugehörigen MIME-Header zu entnehmen sein.
Post by Stefan+ (Stefan Froehlich)
Ich würde vmtl. in der Programmiersprache meiner Wahl die ankommende
Mail durch deren MIME-Bibliothek jagen, abhängig vom Typ des
obersten Containers entweder ein Element darin oder einen weiteren
Container ergänzen und das Ergebnis wieder in Klartext
zurückwandeln. Reine plain-text Mails ließen sich ggf. als
Sonderfall behandeln.
Ja, so weit war ich ...
Post by Stefan+ (Stefan Froehlich)
MIME-Parser wird es für so ziemlich alle gängigen Sprachen geben,
ein fertiges Tool für genau diese Aufgabenstellung eher nicht.
Ich mag irgendwie nicht glauben das ich der erste mit dieser Idee bin ...

Bernd
Thomas Hochstein
2021-08-24 13:46:04 UTC
Permalink
Post by Bernd
Ich mag irgendwie nicht glauben das ich der erste mit dieser Idee bin ...
Vermutlich schon, weil es weder wünschenswert ist, den Inhalt einer
E-Mail zu verändern, noch einfach umzusetzen.

Kennzeichnungen erfolgen daher entweder im Header, ggf. als
Subject-Tag, oder es wird eine neue Mail mit dem Hinweistext erzeugt,
der die ganze Mail mit allen ihren MIME-Elementen als MIME-Element
angehängt wird (multipart/digest).

-thh

(Das Thema dürfte in d.c.p.mail im Übrigen off-topic sein, denn es
geht Dir ja nicht um einen Mailanbieter, sondern nach d.c.s.mailserver
gehören.)
Bernd
2021-08-24 14:32:07 UTC
Permalink
Post by Thomas Hochstein
Post by Bernd
Ich mag irgendwie nicht glauben das ich der erste mit dieser Idee bin ...
Vermutlich schon, weil es weder wünschenswert ist, den Inhalt einer
E-Mail zu verändern, noch einfach umzusetzen.
Kennzeichnungen erfolgen daher entweder im Header, ggf. als
Subject-Tag,
Ich befürchte das das nicht auffällig genug ist.
Post by Thomas Hochstein
oder es wird eine neue Mail mit dem Hinweistext erzeugt,
der die ganze Mail mit allen ihren MIME-Elementen als MIME-Element
angehängt wird (multipart/digest).
Ah ja, das könnte ich mal probieren. Das hört sich auch deutlich
einfacher an als die Mail zu ändern.
Post by Thomas Hochstein
-thh
(Das Thema dürfte in d.c.p.mail im Übrigen off-topic sein, denn es
geht Dir ja nicht um einen Mailanbieter, sondern nach d.c.s.mailserver
gehören.)
Oh, sorry, da habe ich mich vergriffen ... -> nach d.c.s.mailserver

Bernd
Arno Welzel
2021-08-30 08:44:33 UTC
Permalink
Post by Bernd
Hi,
nein, nicht einfach echo ... ;-)
gegeben ist eine ankommende Mail im SMTP-Format. Dort hinein möchte ich
einen Text einfügen der dann im Mail-Client an oberster Stelle im
Mail-Body angezeigt wird, und zwar unabhängig davon ob es sich um eine
HTML- oder eine Klartext-Mail handelt.
Ganz so einfach scheint das aber im Zeitalter der MIME-Mails nicht mehr
zu sein ...
1) MIME-Parser besorgen

2) Mit dem MIME-Parser prüfen, ob es sich um eine Multipart-Mail handelt
oder nicht

3) Falls Multipart: ersten Part nehmen

4) Den als Mail-Inhalt identifizierten Teil prüfen, ob es sich um Text
oder HTML handelt.

5a) Bei Text den Text am Anfang in der erforderlichen Codierung einfügen.

5b) Bei HTML den Inhalt einem DOM-Parser geben und im BODY-Element einen
Text-Node als erstes Child einfügen

6) Den modifizierten Teil wieder in die Mail packen.
Post by Bernd
Gibt es dazu fertige Tools (nach welchen Stichworten sollte ich suchen),
oder welche Tipps könnt ihr mir geben?
Das kommt auf die Programmiersprache an. Nein, ohne Programmierung geht
es nicht.
--
Arno Welzel
https://arnowelzel.de
Marc Haber
2021-08-30 17:34:35 UTC
Permalink
Post by Arno Welzel
1) MIME-Parser besorgen
2) Mit dem MIME-Parser prüfen, ob es sich um eine Multipart-Mail handelt
oder nicht
3) Falls Multipart: ersten Part nehmen
4) Den als Mail-Inhalt identifizierten Teil prüfen, ob es sich um Text
oder HTML handelt.
5a) Bei Text den Text am Anfang in der erforderlichen Codierung einfügen.
5b) Bei HTML den Inhalt einem DOM-Parser geben und im BODY-Element einen
Text-Node als erstes Child einfügen
6) Den modifizierten Teil wieder in die Mail packen.
Post by Bernd
Gibt es dazu fertige Tools (nach welchen Stichworten sollte ich suchen),
oder welche Tipps könnt ihr mir geben?
Das kommt auf die Programmiersprache an. Nein, ohne Programmierung geht
es nicht.
Kann man nicht einfach einen weiteren multipart/mixed Part vorne dran
klatschen? Das würde einem auch das Gehampel mit multipart/alternative
ersparen.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
Arno Welzel
2021-09-01 08:38:35 UTC
Permalink
Post by Marc Haber
Post by Arno Welzel
1) MIME-Parser besorgen
2) Mit dem MIME-Parser prüfen, ob es sich um eine Multipart-Mail handelt
oder nicht
3) Falls Multipart: ersten Part nehmen
4) Den als Mail-Inhalt identifizierten Teil prüfen, ob es sich um Text
oder HTML handelt.
5a) Bei Text den Text am Anfang in der erforderlichen Codierung einfügen.
5b) Bei HTML den Inhalt einem DOM-Parser geben und im BODY-Element einen
Text-Node als erstes Child einfügen
6) Den modifizierten Teil wieder in die Mail packen.
Post by Bernd
Gibt es dazu fertige Tools (nach welchen Stichworten sollte ich suchen),
oder welche Tipps könnt ihr mir geben?
Das kommt auf die Programmiersprache an. Nein, ohne Programmierung geht
es nicht.
Kann man nicht einfach einen weiteren multipart/mixed Part vorne dran
klatschen? Das würde einem auch das Gehampel mit multipart/alternative
ersparen.
Auch das erfordert eine Interpretation des Mailinhaltes, angefangen
damit, dass man den Part-Seperator kennen muss, um einen weiteren Part
hinzufügen zu können.
--
Arno Welzel
https://arnowelzel.de
Marc Haber
2021-09-02 10:39:58 UTC
Permalink
Post by Arno Welzel
Auch das erfordert eine Interpretation des Mailinhaltes, angefangen
damit, dass man den Part-Seperator kennen muss, um einen weiteren Part
hinzufügen zu können.
Das ist freilich richtig, angucken muss man sich das, was man
verändert möchte. Das hatte ich auch nie bestritten.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
Arno Welzel
2021-09-05 14:54:33 UTC
Permalink
Post by Marc Haber
Post by Arno Welzel
Auch das erfordert eine Interpretation des Mailinhaltes, angefangen
damit, dass man den Part-Seperator kennen muss, um einen weiteren Part
hinzufügen zu können.
Das ist freilich richtig, angucken muss man sich das, was man
verändert möchte. Das hatte ich auch nie bestritten.
Es ging um deine Aussage, dass man *statt* der Interpretation der
MIME-Parts folgendes tun könnte:

"Kann man nicht einfach einen weiteren multipart/mixed Part vorne dran
klatschen? Das würde einem auch das Gehampel mit multipart/alternative
ersparen."

Und nein, einfach einen weiteren Part einfügen, reicht nicht, wenn man
dafür sorgen will, dass im *sichtbaren* Inhalt der E-Mail Text am Anfang
eingefügt wird.
--
Arno Welzel
https://arnowelzel.de
Marc Haber
2021-09-07 12:55:40 UTC
Permalink
Post by Arno Welzel
Post by Marc Haber
Post by Arno Welzel
Auch das erfordert eine Interpretation des Mailinhaltes, angefangen
damit, dass man den Part-Seperator kennen muss, um einen weiteren Part
hinzufügen zu können.
Das ist freilich richtig, angucken muss man sich das, was man
verändert möchte. Das hatte ich auch nie bestritten.
Es ging um deine Aussage, dass man *statt* der Interpretation der
"Kann man nicht einfach einen weiteren multipart/mixed Part vorne dran
klatschen? Das würde einem auch das Gehampel mit multipart/alternative
ersparen."
Das ist weder ein "statt" noch ist es - ausweislich des Fragezeichens
- eine Aussage.
Post by Arno Welzel
Und nein, einfach einen weiteren Part einfügen, reicht nicht, wenn man
dafür sorgen will, dass im *sichtbaren* Inhalt der E-Mail Text am Anfang
eingefügt wird.
Warum nicht?

multipart/mixed
Teil 1: blablubb, neu eingefügt.
Teil 2: multipart/alternative
Teil 2/html
Teil 2/textplain

Aber ich kann zu wenig MIME um das abschließend beurteilen zu können.
Und Du scheins ja auch mehr daran interessiert zu sein, mich
vorzuführen anstelle für Erleuchtung zu sorgen.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
Peter J. Holzer
2021-09-08 05:03:20 UTC
Permalink
Post by Marc Haber
Post by Arno Welzel
Post by Marc Haber
Post by Arno Welzel
Auch das erfordert eine Interpretation des Mailinhaltes, angefangen
damit, dass man den Part-Seperator kennen muss, um einen weiteren Part
hinzufügen zu können.
Man braucht ein Tool oder eine Library dafür, die MIME parsen und
manipulieren kann, richtig. Wie bei jedem anderen komplexen Fileformat
auch. Hat war angenommen, dass das mit cat und sed geht?
Post by Marc Haber
Post by Arno Welzel
Post by Marc Haber
Das ist freilich richtig, angucken muss man sich das, was man
verändert möchte. Das hatte ich auch nie bestritten.
Es ging um deine Aussage, dass man *statt* der Interpretation der
"Kann man nicht einfach einen weiteren multipart/mixed Part vorne dran
klatschen? Das würde einem auch das Gehampel mit multipart/alternative
ersparen."
Das ist weder ein "statt" noch ist es - ausweislich des Fragezeichens
- eine Aussage.
Post by Arno Welzel
Und nein, einfach einen weiteren Part einfügen, reicht nicht, wenn man
dafür sorgen will, dass im *sichtbaren* Inhalt der E-Mail Text am Anfang
eingefügt wird.
Warum nicht?
multipart/mixed
Teil 1: blablubb, neu eingefügt.
Teil 2: multipart/alternative
Teil 2/html
Teil 2/textplain
Ja, Kann man so machen. Bzw. etwas allgemeiner:

Multipart/mixed mit zwei Teilen. Der erste ist der neue Inhalt, der
zweite der bisherige Inhalt (was auch immer das war) der Mail.

Machen etliche Mailinglisten so, nur dass sie den neuen Part hinten
anhängen, aber das ist prinzipiell das gleiche. Habe ich selber auch
schon gemacht. Sowas ist in Perl oder Python schnell geschrieben.

Als Optiomierung kann man, wenn die Mail bereits multipart/mixed ist,
den ersten Teil da einfügen.

hp
Arno Welzel
2021-09-08 10:36:27 UTC
Permalink
Post by Marc Haber
Post by Arno Welzel
Post by Marc Haber
Post by Arno Welzel
Auch das erfordert eine Interpretation des Mailinhaltes, angefangen
damit, dass man den Part-Seperator kennen muss, um einen weiteren Part
hinzufügen zu können.
Das ist freilich richtig, angucken muss man sich das, was man
verändert möchte. Das hatte ich auch nie bestritten.
Es ging um deine Aussage, dass man *statt* der Interpretation der
"Kann man nicht einfach einen weiteren multipart/mixed Part vorne dran
klatschen? Das würde einem auch das Gehampel mit multipart/alternative
ersparen."
Das ist weder ein "statt" noch ist es - ausweislich des Fragezeichens
- eine Aussage.
Dein Vorschlag war deine Frage auf meine Ausführung dazu, wie man das
technisch lösen könnte.

Ich habe einen konkreten Weg beschrieben und *dazu* hast Du dann
gefragt, ob man nicht einfach einen Part vorne anfügen kann - wie sollte
ich das denn anders interpretieren, als dass Du es *statt* des von mir
beschriebenen Ablaufs meinst?
Post by Marc Haber
Post by Arno Welzel
Und nein, einfach einen weiteren Part einfügen, reicht nicht, wenn man
dafür sorgen will, dass im *sichtbaren* Inhalt der E-Mail Text am Anfang
eingefügt wird.
Warum nicht?
Weil Mail-Clients in der Regel nur einen Part als sichtbaren Text
anzeigen und nicht selber mehrere, vom Typ her passende Parts
zusammenfügen für die Anzeige der Mail.

Das wiederum ist so, weil Mail-Clients auch beim Senden von Mail nur
einen Part für den Mail-Inhalt erzeugen, ggf. mit mehreren Alternativen,
die dann *statt* des Parts verwendet werden (Details dazu siehe z.B.
<https://datatracker.ietf.org/doc/html/rfc2046#section-5.1.4>).

Zusammenfügen mehrerer Parts für die Anzeige des Mail-Inhaltes wäre
ohnehin nur sinnvoll mit text/plain machbar - bei text/html ist das
zusammenfügen mehrerer Teile zu einer Gesamtansicht kaum noch sinnvoll
möglich.

Aber es steht Dir frei, diesbezüglich konkrete Versuche zu machen und
über das Ergebnis zu berichten, wenn Du glaubst, dass die vorgetragenen
Vorschläge zur konkreten Vorgehensweise zu kompliziert sind und man es
viel einfacher lösen kann.

[...]
Post by Marc Haber
Aber ich kann zu wenig MIME um das abschließend beurteilen zu können.
Und Du scheins ja auch mehr daran interessiert zu sein, mich
vorzuführen anstelle für Erleuchtung zu sorgen.
Nein, wieso? Du hast einen Vorschlag gemacht, ich habe erklärt, warum
ich glaube, dass der Vorschlag nicht funktioniert. Wenn Du derlei nicht
erträgst, warum machst Du dann überhaupt Vorschläge in einem Gebiet, in
dem Du Dich nicht sehr gut auskennst?
--
Arno Welzel
https://arnowelzel.de
Peter J. Holzer
2021-09-11 10:18:39 UTC
Permalink
Post by Arno Welzel
Post by Marc Haber
Post by Arno Welzel
Und nein, einfach einen weiteren Part einfügen, reicht nicht, wenn man
dafür sorgen will, dass im *sichtbaren* Inhalt der E-Mail Text am Anfang
eingefügt wird.
Warum nicht?
Weil Mail-Clients in der Regel nur einen Part als sichtbaren Text
anzeigen und nicht selber mehrere, vom Typ her passende Parts
zusammenfügen für die Anzeige der Mail.
Mit "Mail-Clients" meinst Du jetzt konkret Microsoft Outlook?

Mutt, Thunderbird und Gmail haben damit keine Probleme.
Hier sind ein paar Scrrenshots:
https://www.hjp.at/mail/mime/multipart-mixed/

Dass Outlook das mal wieder versemmelt ist keine Überraschung. Das ist
halt kein Mail-Client sondern ein "Microsofts proprietäres
Kommunikationsprotokoll"-Client.

hp

PS: Die Test-Mails verschicke ich gerne, wenn wer wissen will, wie die
bei ihm aussehen.
Marc Haber
2021-09-11 17:36:24 UTC
Permalink
Post by Peter J. Holzer
Dass Outlook das mal wieder versemmelt ist keine Überraschung. Das ist
halt kein Mail-Client sondern ein "Microsofts proprietäres
Kommunikationsprotokoll"-Client.
Outlook ist eine ganz hervorragende Groupware. Man darf nur nicht auf
die Idee kommen, damit Internet-E-Mail machen zu wollen.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " |
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
Arno Welzel
2021-09-11 23:05:36 UTC
Permalink
Post by Peter J. Holzer
Post by Arno Welzel
Post by Marc Haber
Post by Arno Welzel
Und nein, einfach einen weiteren Part einfügen, reicht nicht, wenn man
dafür sorgen will, dass im *sichtbaren* Inhalt der E-Mail Text am Anfang
eingefügt wird.
Warum nicht?
Weil Mail-Clients in der Regel nur einen Part als sichtbaren Text
anzeigen und nicht selber mehrere, vom Typ her passende Parts
zusammenfügen für die Anzeige der Mail.
Mit "Mail-Clients" meinst Du jetzt konkret Microsoft Outlook?
Mutt, Thunderbird und Gmail haben damit keine Probleme.
https://www.hjp.at/mail/mime/multipart-mixed/
Danke für die Ergänzung. I stand corrected. Dann kann man in der Tat bei
Multipart-Mails einfach den Text am Anfang als weiteren text/plain-Part
einfügen. Man muss nur den Part-Trenner korrekt setzen.
--
Arno Welzel
https://arnowelzel.de
Mathias Fuhrmann
2021-08-30 09:43:56 UTC
Permalink
Post by Bernd
gegeben ist eine ankommende Mail im SMTP-Format. Dort hinein möchte ich
einen Text einfügen der dann im Mail-Client an oberster Stelle im
Mail-Body angezeigt wird, und zwar unabhängig davon ob es sich um eine
HTML- oder eine Klartext-Mail handelt.
Und diese 'ankommende Mail' muß/soll auf *deinem* MUA den Zusatztext
über dem Originalbody anzeigen.
Eine auffällige 'Notiz' reicht dir nicht?
In meinem Alt-MUA Becky! war so etwas eingebaut.
Für den Thunderbird gibt es die Erweiterung Xnote.
Habe ich gerade getestet, mit TB 60 und TB 68, bin damit zufrieden.

Vermutlich ist es aber nicht das, was *du* suchst.
Deine Anfrage hat aber mir etwas geholfen. ;-)
--
Mathias
Loading...