[Postfixbuch-users] [OT] HTL-Mails von Kommandozeile verschicken

Mathias Jeschke postfixbuch-users at gmj.cjb.net
Mi Jan 25 22:37:14 CET 2012


Am 25.01.12 17:56, schrieb Peer Heinlein:

> Ich habe in der Vergangenheit tatsächlich festgestellt, daß ein
> 
> cat file | sendmail
> 
> etwas anderes ist, also
> 
> sendmail < file
> 
> WARUM konnte ich nicht klären, aber im zweiten Fall sind die Header oft 
> verrutscht. 

Hört sich eher nach einem Bug in "sendmail" (ich gehe mal davon aus,
dass Du von der Postfix-Version sprichst).
An sich ist eine Pipe natürlich etwas anderes im Kernel als ein
Filedeskriptor (so geht z.B. kein seek() auf einer Pipe), aber von der
API beim read() sollte das - bis auf evtl. Puffergrößen - transparent sein.

> Ein useless use of cat ist mir durchaus ein Begriff. Aber gerade wenn 
> man längere Pipe-Verarbeitungsketten aufbaut und man Voodo-Magic 
> zusammenschraubt kann es SEHR sinnvoll sein, mit einem neutralen "cat 
> file" in die Pipe-Kette zu starten, statt das File im ersten Gnu-Tool 
> per Input-Redirect umzubauen. Dann vertauscht man nämlich leichter die 
> Reihenfolge, verändert leichter Parameter (weil die dann hinten stehen), 
> wird schneller fertig und sitzt schneller zu Hause am Abendessen.
> 
> Darum: Theoretisch ja, praktisch nein.

Im Falle von "Verarbeitungsketten" stimme ich Dir zu, aber

1. liegt hier keine vor und
2. ist sendmail auch schlecht als "Filter" in einer Pipe-Kette zu
   gebrauchen.

Wie auch immer, das Pipe-vs-FD-Phänomen wäre schon einmal interessant zu
untersuchen, z.B. per strace.
(Evtl. macht "sendmail" ja tatsächlich einen seek() für die Headerzeilen...)

Gruß,
Mathias



Mehr Informationen über die Mailingliste Postfixbuch-users