HTML-Mail in Shellscript

F

Florian888

Grünschnabel
Hi Leute,

Hintergrund ist: Ich soll ein Script schreiben, dass verschiedene Daten aus Datenbanken abfragt und in Tabellenform an bestimmte Benutzer per Mail schickt.

Hab mir gedacht ich erstelle eine Mail mit einer HTML-Tabelle:
mail ********** <<-END
Text
HTML-Tabelle
END

In Outlook wird der HTML-Code aber als Text ausgegeben.
Wie kann ich denn eine HTML-Mail verschicken in einem UNIX Script? Geht das überhaupt?
Habt ihr noch andere Ideen wie ich das ganze in Tabellenform verschicken kann. Das is mir freigestellt.


Danke schonmal
Grüße aus München
 
Attachment?

Hi,

bringt es dir was, die Tabelle (sieht ja so aus als hättest du die im Prinzip schon) einfach als Anhang mit der Mail zu senden? Mal lesen: man mail - das geht nämlich (schreibe ich mal, weil es sowieso in der man-page steht mit den Parametern "-s" und "-a", lies sie trotzdem mal...):
Code:
mail -s "Tabelle im Anhang" -a tabelle.html name@firma.com < info.txt
Damit erzeugst du ne Mail mit der Tabelle im Anhang und "info.txt" im Body. Mußt du halt nur zwei getrennte Dateien erzeugen für den Body und den Anhang. Aber erzeugen mußt du ja sowieso und tust du ja schon...
 
das wär ne Möglichkeit an die ich auch schon gedacht hab als Alternative.

Aber ich wollt das eigentlich schon als Tabelle innerhalb der Mail. Hat da noch jemand ne Idee?
 
entweder du hast ne textmail oder ne htmlmail. in einer textmail gibt es keine tabelle an sich. das gibt es nur in einer htmlmail. dann musst aber auch alles in html machen. mischmasch gibts nicht!

frank
 
und wie erstelle ich eine HTML-Mail in nem UNIX-Script?
 
Eigentlich musst du nur den mimetype setzen auf text/html und dann das komplette htmlkonstrukt als inhalt schicken.

Umweg wäre über perl oder php möglich.
 
ich muss dazusagen dass ich ein ziemlicher Anfänger in diesem Gebiet bin.
Wie setz ich denn den Mimetype?
denke mit
mail -m typ ...

Aber wie muss der Typ heißen wenn ich ne HTML-Mail verschicken will?
wenn ichs mit mail -m html ... versuch kommt trotzdem nur ne Textmail im Outlook an.
 
Zuletzt bearbeitet:
Hi,

jetzt hab ich mal fürs erste die Idee mit der HTML-Mail verworfen um weiterarbeiten zu können.

Kann mir bitte einer sagen wie ich in einem Script eine HTML-Datei erzeugen kann? Was gibts da für Befehle beim Arbeiten/Anlegen mit Dateien? Hat da vielleicht jemand ein Link zu einem Tutorial oder so?

Danke schonmal!
 
Ich muss ehrlich sagen ich hab noch nie was mit perl zu tun gehabt und soll auch nur ein einfaches Shellscript schreiben.
Kann mir einer den Befehl zum Erstellen einer neuen Datei innerhalb eines Scripts geben? Und am besten noch wie ich die Datei zu einer HTML-Datei mache, bzw. als HTML-Datei erstelle?
 
Klar hab ich. Da fin dich aber nur Umleitungen in vorhandene Dateien und so. Aber keinen Befehl zum erstellen einer neuen Datei (im HTML-Format).
Ich habe vor eine Datei zu erstellen, als Anhang zu verschicken und anschließend wieder zu löschen.
 
Klar hab ich. Da fin dich aber nur Umleitungen in vorhandene Dateien und so. Aber keinen Befehl zum erstellen einer neuen Datei (im HTML-Format).
Ich habe vor eine Datei zu erstellen, als Anhang zu verschicken und anschließend wieder zu löschen.
Hallo
Wie eine html-Datei aussieht wirst du ja wohl wissen.
Wie du genau diesen Text in eine Datei bekommst, steht unter Xanties Link Punkt 3.3.2 In eine Datei schreiben.
Um eine Datei zu löschen, benutze rm.

Im Übrigen sind html-Mail nicht das ideale Mittel.
Viel Clientanwendungen verhindern das Anzeigen von html-Text, was auch Sinn macht. Bei mir z.B: fliegen html-formatierte Mails ungelesen in die Spam-Tonne. Deshalb ist ein Anhang die richtige Wahl.

Gruß Wolfgang
 
Vielleicht versteh ich ja was falsch. Also wie ich Text in eine Datei bekomme krieg ich hin, aber ich möchte ja eine neue Datei erstellen. Dafür such ich den Befehl

Sorry is ja Touch (wenn nicht richtig bitte berichtigen)
 
Zuletzt bearbeitet:
Ich habe vor eine Datei zu erstellen, als Anhang zu verschicken und anschließend wieder zu löschen.
Hallo,

erstmal schließe ich mich meinen zwischenzeitlichen Vorpostern an...

Sag mal, kann es sein, daß dir der Befehl echo entgangen ist?
Code:
#!/bin/bash
STRING="<html><body><h1>Test</h1><hr>Ich soll in eine Datei!</body></html>"
echo "$STRING" > test.html
echo "Huhu, Mail mit Anhang!" > info.txt
mail -s "HTML-Anhang" -a test.html user@firma.com < info.txt
Wenn du tatsächlich nur ein Shellscript benutzen willst / sollst, kannst du nach dem Beispiel mit etwas Phantasie deine Datei voll schreiben. Lies aber die angegebene Doku noch mal und bedenke:
  • mit > schreibst du in eine Datei
    (existiert sie nicht, wird sie erstellt. Vorhandene wird überschrieben.)
  • mit >> hängst du was an eine Datei an (also weitere [HTML-]Zeilen).
  • mit < liest du eine Datei als Input für den vorangegangenen Befehl ein.
Aber keinen Befehl zum erstellen einer neuen Datei (im HTML-Format).
Ne, HTML ist doch einfach Text. Und den gibst du halt aus in deine Datei. Zur Not halt zeilenweise, mitsamt HTML-Tags...

Erstellen tust du sie wie bereits erwähnt entweder mit touch datei.html oder eben einfach mit echo "yxz" > datei.html
 
Zuletzt bearbeitet:
Vielleicht versteh ich ja was falsch. Also wie ich Text in eine Datei bekomme krieg ich hin, aber ich möchte ja eine neue Datei erstellen. Dafür such ich den Befehl

Ne, du verstehst nix falsch, aber das mit dem Lesen müssen wir noch üben, da deine Frage schon vor einigen Posts von mir und meinen Vorpostern beantwortet wurde.

Ich hatte vorher geschrieben

Code:
man touch

Und wenn du auch nur einmal einen kurzen Blick in die manpage geworfen hättest wäre dir aufgefalllen das

Code:
touch foo.html

eine Html-Datei namens foo anlegt.

Eleganter ist es jedoch so zu machen wie das jabo beschrieben hat:

mit > schreibst du in eine Datei
(existiert sie nicht, wird sie erstellt. Vorhandene wird überschrieben.
 
Danke erstmal für die Hilfe. Hab das man touch übersehen.

Also Datei erzeugen funktioniert jetzt so:
Code:
cat > Datei <<EOF
Der
mehrzeilige
Text
EOF

Jetzt muss ich euch aber nochmal nerven :]
Ich will diese Datei jetzt aber per Mail versenden:
Code:
mail -a Datei name@firma,.com ...

Da kommt aber dann ne Mail ohne Anhang an.

Mit uuencode hab ich auch was gefunden und ner Pipe, aber da kommt dann ne Datei an, die ich nicht verwenden kann im Outlook.

Hat da jemand ne Lösung für?
 
Hallo
Ich weiß ja nicht, wohin bei dir mail zeigt -> es kann ein Link auf nail sein oder direkt mail, oder etwas ganz anderes.

Ob dein mail -a Anhang versteht, hängt halt von deiner Version ab.

Aber das cat > Datei >>EOF...
kannst du dir auch sparen.
Code:
echo -ne "Hier der mehrzeilge\nText\nzeile drei\n">Datei
Tut das Gleiche.
Bzw wenn du den text gleich in der Mail haben willst(nicht als Anhang), geht auch sowas:
Code:
mail -s"Subject" foo@bar.tld <<EOF
bla fasel
EOF

Google hat mir für deinen Fall auch noch Das hier ausgespuckt.


Gruß Wolfgang
 

Ähnliche Themen

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

Neue ausführbare Datei mit Datensätzen aus einer Datei und Variablen erstellen

Statistik/Auswertung aus MySQL-Datenbank

Script zur erstellung einer Softwaredatenbank für Quellcode

Onlineumfrage programmieren (mehrseitige HTML Formular an PHP übergeben)

Zurück
Oben