PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : textdateien als Mail verschicken



wackeldackel
28-07-2003, 08:40
Schönen Montagmorgen,

habe ein kleines Problem. Ich müsste Textdateien, die von einem Unixsystem erstellt werden per Skript als Mail verschicken. Die Datei enthält die betreffende Mailadresse. Wie mache ich jetzt sendmail klar, dass ich die Datei versenden möchte.
Nachdem ich natürlich auch voll die Ahnung habe :( komme ich da irgendwie nicht weiter.
Bräuchte ein paar Tips zur Vorgehensweise.

Danke

phate
28-07-2003, 09:30
Hi wackeldackel,

poste mal genauere Infos. Wo genau steht die Mailadresse in besagter Datei bzw. wie ist diese Datei aufgebaut?

Gruss,

phate

I-Master
28-07-2003, 10:13
Mit grep "irgendwas" /pfad/zur/datei suchst Du alle Treffer mit "irgendwas" aus datei raus.

Das funktioniert zeilenweise. Wenn Du jetzt z.B. grep "@" datei.txt eingibts bekommste ggf. die E-Mail Adresse. Sie sollte dann aber nur 1x in der Datei drinstehen.

Wenn dem anders ist poste am besten mal die Datei.

wackeldackel
28-07-2003, 11:13
Also die Datei steht im gemounteten Verzeichnis eines Unix Servers. Unter Linux wird dieses als /mails/ gemountet.
Die Unixmaschine erstellt hier eine Bestelldatei, in der als Empfänger die Adresse
steht und danach eine Zeile mit "Mail: hasenfuss@weissnicht.de"

Das mit der Adresse auslesen aufgrund eines Merkmals (hier Mail:xxxxxx) glaub ich bekomme ich hin, da diese Stelle nur einmal vorkommt.

Aber wie weiter. Schiebe ich das file irgendwo rein und wenn ja wohin???

wackeldackel
28-07-2003, 11:14
jetzt habe ich noch etwas vergessen. Es kommen in das Verzeichnis natürlich mehrere Dateien. Wenn es sein muss 30 pro Stunde.

phate
28-07-2003, 11:41
Hi wackeldackel,

schreib Dir ein Skript, das entweder beim Ankommen jeder Mail (wenn der Vorgang zeitkritisch ist) oder alle x Minuten, alle Dateien in besagtem Verzeichnis abarbeitet und dann irgendwo hin archiviert.

Schneide Dir den Adressaten raus, bei Problemen meld' Dich, und dann pipe die Datei (abzüglich der eMail-Adressen) in das Programm mail. Siehe
man mailDabei kannst Du per Kommandozeilenoption den Adressat übergeben und der gepipte Dateiinhalt wird als zu versendender Text interpretiert. Das sollte genügen.

Gruss,

phate

wackeldackel
28-07-2003, 11:50
Danke für den Tip!!

werde ich versuchen. Melde mich wieder

Gruss Klaus

wackeldackel
04-08-2003, 09:56
Ich habe jetzt per grep den Adressaten rausgefischt und schicke die Datei an diese Adresse. Nachdem das mein erstes Skript ist, sieht es wahrscheinlich auch richtig super aus :(
!/bin/bash
# textdatei als mail verschicken
adresse=`grep "@" /home/www/intern/test/mail.txt`
mailx -s 'Bestellung' $adresse < /home/www/intern/test/mail.txt


Jetzt habe ich doch noch ein paar Fragen. Wie mache ich das bei mehr als einer Datei??? Ich habe dann ja meinetwegen mail1.txt, mail10.txt, mail127.txt usw. Muss ich den Verzeichnisinhalt sortieren und mich dann auf die erste Datei stürzen. Adresse auslesen und dann die erste Datei verschicken, oder geht das anders??

den Betreff wollte ich auch noch variabel halten. Steht so in der Datei: "Betreff:Bestellung 100/01 vom 04.08.03" Wenn ich jetzt aber statt Bestellung '$betreff' schreibe kommt ja nur $betreff. Wenn ich die Anführungszeichen weglasse kracht es, weil dies ja keine Adresse ist. :confused:

Wenn ich da noch nen kleinen Tip bekommen könnte wäre das nicht schlecht.

danke Klaus