PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Versenden von E-Mail über das Shell-Kommando "mail"



hiTCH-HiKER
24.05.04, 16:52
Momentan versende ich E-Mails folgendermaßen:
# mail -i -s 'titel' 'email@adresse.de' < inhalt.txt

Ich möchte die Daten aber nicht mehr über die Datei "inhalt.txt" holen, sondern direkt in der Kommandozeile übergeben, also so:

# mail -i -s 'titel' 'email@adresse.de' 'bla bla inhalt der email'

So funktioniert es nur leider nicht, das Programm "mail" geht dann in den interaktiven Modus. Gibt es eine Möglichkeit es so zu verschicken?

mbo
24.05.04, 16:55
So funktioniert es nur leider nicht, das Programm "mail" geht dann in den interaktiven Modus. Gibt es eine Möglichkeit es so zu verschicken?

Kurz und knapp: Ja ;)

versuchs mit
echo "ich bin der body der mail" | mail -s "der Subejct" dummy@domain.tld

cu/2 iae

hiTCH-HiKER
24.05.04, 17:15
Kurz und knapp: Ja ;)

versuchs mit
echo "ich bin der body der mail" | mail -s "der Subejct" dummy@domain.tld

cu/2 iae

perfekt, besten Dank! :)
Diesen "echo" Trick muß ich mir mal merken, sehe ich öfters :D

johnpatcher
24.05.04, 17:43
entscheidend ist hier eher das "|" ...

johnpatcher

hiTCH-HiKER
24.05.04, 18:48
entscheidend ist hier eher das "|" ...

johnpatcher

Was genau macht eigentlich obiger Befehl? Falls er sowas wie eine
Benutzereingabe "simuliert", wieso bleibt dann "mail" nicht im
interaktiven Modus hängen? So richtig versteh ich das noch net was
da passiert :D
...und wieso hat der "mail"-Befehl keine Option um den Text einfach in
der Kommandozeile mitzugeben (ohne Pipe)?

core
24.05.04, 22:38
Wie wäre es mit
mail -i -s 'titel' 'email@adresse.de' <<EOM

Dann kannst du tippen und tippen und tippen inkl. umbrüche bis du "EOM" schreibst.

Gruss

RapidMax
24.05.04, 22:59
Was genau macht eigentlich obiger Befehl? Falls er sowas wie eine Benutzereingabe "simuliert", wieso bleibt dann "mail" nicht im
interaktiven Modus hängen? So richtig versteh ich das noch net was
da passiert :D
mail überprüft ob die Standardeingabe von einem Terminal kommt und geht dann in den interaktiven Modus. Sonst list es den Body der Mail von der Standardeingabe im normalen Modus. Eine Pipe ist nichts anderes als ein FIFO-Buffer (First-In, First-Out), bei dem die Daten von der Standardausgabe des "linken" Programms zur Standardeingabe des "rechten" Programms geleitet werden.


...und wieso hat der "mail"-Befehl keine Option um den Text einfach in der Kommandozeile mitzugeben (ohne Pipe)?
Wieso braucht es das, wenn es auch sonst funktioniert. In der Regel willst du ja mehr als eine Zeile, da eignet sich die Kommandozeile nicht sehr gut.

Im übrigen: Schau dir mal die vorherige Lösung von core an. Die funktioniert sehr gut, auch innerhalb von Shell-Scripten.

Gruss, Andy