n00bie
19.01.12, 09:52
Hallo zusammen,
ich muss mich hier zum Einstieg als ziemlicher Linux noob outen...
Ich habe ein Ubuntu aufgesetzt, welches ich in erster Linie für Nagios brauche. Da dort ein GSM Modem angeschlossen ist, um Nagios-Alarme an Handys zu verschicken, wollte ich das System gleich um ein email2sms Gateway erweitern.
Das funktioniert mit den SMS Server Tools und dem enthaltenen Script email2sms so weit: wenn ich im To:Feld eingebe: "Name +491234567" <sms@mydomain.de> abschicke, wird die Nummer aus dem Header übernommen.
Die dafür zuständige Zeile in dem Script scheint diese zu sein:
destinations=`formail -zx "To:" < $tmp`
Das ganze Script sieht so aus:
tmp=$(mktemp /tmp/smsgw.XXXXXX)
cat >$tmp
destinations=`formail -zx "To:" < $tmp`
IFS=,
for destination in $destinations; do
destination=${destination## }
OUTFILE=$(mktemp /var/spool/sms/outgoing/smsgw.out.XXXXXX)
formail -f -I "To: $destination" < $tmp > $OUTFILE
chmod 666 $OUTFILE
echo "SMS queued to $OUTFILE"
done
rm $tmp
Leider haben wir 2 Anwendungen, die Emails automatisch an definierte Empfänger verschickt. Dort lässt sich das Format mit dem vorangestellten Alias nicht so eingeben, es wird nur eine Email-Adresse akzeptiert.
Mein Ziel ist also, für jedes Handy, welches Alarmierungen bekommen soll ( 3 oder 4 Stück) eine Email-Adresse im Format 491721234567@mydomain.de anzulegen.
Dann soll das Script vor den Zahlen ein + anfügen und alles ab dem @ wegschneiden.
Ich habe es hiermit probiert:
destinations=`formail -z -x"To:" | cut -d'@' -f1 ' < $tmp`
Das funktioniert so aber leider nicht.
Hat jemand eine Idee, wie ich das mit formail bewerkstelligen kann?
Ich hatte schon versucht, im Forum von Keke Kasvi, der die SMS Tools und das Script programmiert hat, eine Antwort zu bekommen, aber dort ist leider nicht mehr allzu viel los.
Vielleicht könnte mir auch jemand helfen, das Script vollständig zu verstehen,
insbesondere die Zeilen :
destinations=`formail -zx "To:" < $tmp`
IFS=,
OUTFILE=$(mktemp /var/spool/sms/outgoing/smsgw.out.XXXXXX)
formail -f -I "To: $destination" < $tmp > $OUTFILE
verstehe ich nicht wirklich...
Vielen Dank an alle, die bis hierhin gelesen haben :)
Und ein noch größerer Dank an jeden, der mir bei diesem Problem helfen kann.
LG, Matthias
ich muss mich hier zum Einstieg als ziemlicher Linux noob outen...
Ich habe ein Ubuntu aufgesetzt, welches ich in erster Linie für Nagios brauche. Da dort ein GSM Modem angeschlossen ist, um Nagios-Alarme an Handys zu verschicken, wollte ich das System gleich um ein email2sms Gateway erweitern.
Das funktioniert mit den SMS Server Tools und dem enthaltenen Script email2sms so weit: wenn ich im To:Feld eingebe: "Name +491234567" <sms@mydomain.de> abschicke, wird die Nummer aus dem Header übernommen.
Die dafür zuständige Zeile in dem Script scheint diese zu sein:
destinations=`formail -zx "To:" < $tmp`
Das ganze Script sieht so aus:
tmp=$(mktemp /tmp/smsgw.XXXXXX)
cat >$tmp
destinations=`formail -zx "To:" < $tmp`
IFS=,
for destination in $destinations; do
destination=${destination## }
OUTFILE=$(mktemp /var/spool/sms/outgoing/smsgw.out.XXXXXX)
formail -f -I "To: $destination" < $tmp > $OUTFILE
chmod 666 $OUTFILE
echo "SMS queued to $OUTFILE"
done
rm $tmp
Leider haben wir 2 Anwendungen, die Emails automatisch an definierte Empfänger verschickt. Dort lässt sich das Format mit dem vorangestellten Alias nicht so eingeben, es wird nur eine Email-Adresse akzeptiert.
Mein Ziel ist also, für jedes Handy, welches Alarmierungen bekommen soll ( 3 oder 4 Stück) eine Email-Adresse im Format 491721234567@mydomain.de anzulegen.
Dann soll das Script vor den Zahlen ein + anfügen und alles ab dem @ wegschneiden.
Ich habe es hiermit probiert:
destinations=`formail -z -x"To:" | cut -d'@' -f1 ' < $tmp`
Das funktioniert so aber leider nicht.
Hat jemand eine Idee, wie ich das mit formail bewerkstelligen kann?
Ich hatte schon versucht, im Forum von Keke Kasvi, der die SMS Tools und das Script programmiert hat, eine Antwort zu bekommen, aber dort ist leider nicht mehr allzu viel los.
Vielleicht könnte mir auch jemand helfen, das Script vollständig zu verstehen,
insbesondere die Zeilen :
destinations=`formail -zx "To:" < $tmp`
IFS=,
OUTFILE=$(mktemp /var/spool/sms/outgoing/smsgw.out.XXXXXX)
formail -f -I "To: $destination" < $tmp > $OUTFILE
verstehe ich nicht wirklich...
Vielen Dank an alle, die bis hierhin gelesen haben :)
Und ein noch größerer Dank an jeden, der mir bei diesem Problem helfen kann.
LG, Matthias