Der hier vorgestellte Filter dient zur Weiterleitung (unabhängig von der eigentlichen Zustellung der E-Mail) von herkömmlichen E-Mail-Nachrichten an ein SMS-Weiterleitungsservice, womit schlussendlich die E-Mails auf einem Handy gelesen werden können.
Für die vorliegende Lösung ist eine UNIX-Umgebung notwendig, wobei folgende Kommandos erforderlich sind:
Als ausführbares Script wird nun /HOMEDIR-PFAD/bin/SMS aufgerufen und bekommt via
STDIN die Nachricht zugeführt. Dieses Script schleusst die eingende Nachricht durch
den awk-basierten Filter und nimmt die mit einem weiteren Aufruf von sendmail die
Weiterleitung an das E-Mail-zu-SMS-Gateway vor.
Es können auch diverse Fehlerzustände auftreten:
Nimmt das SMS-Gateway die gefilterte E-Mail nicht an (wegen Überlastung), dann erhält
auch der ursprüngliche Absender die Fehlermeldung, das die SMS-Weiterleitung nicht
möglich ist. Das mag für den Absende verwirrend sein, ist aber nicht vermeidbar.
Wenn sich die entspr. Absender hierauf bemerkbar machen, dann kann man diese lediglich bitten,
die Fehlermeldung zu ignorieren. Die Mail ist, zumindest in der vollständigen Variante
ohnehin zugestellt worden.
Filterfunktion
Der Filter hat folgende Eigenschaften:
Trotz dieser recht drastischen Beschneidung des Nachrichtentextes bleibt Dank der Redundanz in der deutschen Sprache, der Inhalt in vielen Fällen erhalten - zumindest in einem wesentlich besseren Ausmaß als durch einfaches Abschneiden des Textes nach ca. 160 Zeichen.
Derzeitige Version:
\USER wobei USER für den tatsächlichen Usernamen steht und die Zustellung in die lokale INBOX bewirkt. Das "\"-Zeichen ist bei neueren Sendmailversionen eigentlich nicht mehr notwendig, verhinderte früher die wiederholter Verwendung von .forward und damit ein Sich-im-Kreis-drehen bei der Zustellung. "|/HOMEDIR-PFAD/bin/SMS" Das mit "|" beginnende Ziel bezeichnet ein Programm, das die eingehende Nachricht via STDIN geliefert bekommt und diese weiterverarbeitet.
Kommandos um die Rechte entsprechend zu setzen:
cd chmod 755 bin/SMS ls -ld bin bin/SMS* .forward
Das Home-Directory könnte auszugsweise in etwa so aussehen:
-rw-r--r-- 1 USER GROUP 25 Mar 2 2000 .forward drwxr-xr-x 6 USER GROUP 2048 Sep 21 17:33 bin -rwxr-xr-x 1 USER GROUP 203 Mar 2 2000 bin/SMS -rw-r--r-- 1 USER GROUP 824 Jan 19 1999 bin/SMS.awkWesentlich sind die Execution-Rechte für bin/SMS vorliegen. Das Script wird mit den Rechten des adressierten Users (also USER:GROUP) gestartet.
Es ist darauf zu achten, dass das Sendmail-Forward-File auch wirklich ".forward" heisst und gegebenenfalls von "forward" auf ".forward" unbenannt wurde.
Wenn man möchte, kann man auch die Rechte restriktiver gestalten:
-rw------- 1 USER GROUP 25 Mar 2 2000 .forward drwx------ 6 USER GROUP 2048 Sep 21 17:33 bin -rwxr-xr-x 1 USER GROUP 203 Mar 2 2000 bin/SMS -rw-r--r-- 1 USER GROUP 824 Jan 19 1999 bin/SMS.awkDamit sind die Einstellungen und das Script privat und können von anderen nicht mehr eingesehen werden. Probleme kann es allerdings dann geben, wenn auf dem gleichen Host jemand versucht an USER eine Mail zu senden, dann wird der Sendmail-Prozess, der die Mail-Zustellung macht mit den Rechten des aufrufenden Users exekutiert, wodurch der Zugriff auf .forward verwehrt bleibt. Das kann je nach Sendmail-Version/Installation unterschiedlich realisiert sein.
Im File SMS.awk muss nur noch die E-Mail-SMS-Gateway-Telefonnummer eingetragen werden, wobei eine Mobilkom A1 Nummer voreingestellt ist. Siehe www.mobilcom.at, Produkte -> A1 Grunddienste -> SMS -> SMS empfangen -> Ihr A1 Handy empfängt e-mails.
From: Mail Delivery SubsystemDer absolute Pfad zum SMS-Script ist nicht korrekt. Dieser sollte den vollständigen Pfadnamen des Script aufweisen. Es ist zu schreiben:Subject: Returned mail: unknown mailer error 1 Auto-Submitted: auto-generated (failure) The original message was received at Fri, 12 Jan 2001 15:21:11 +0100 (MET) from eva.kph.tuwien.ac.at [128.130.38.13] ----- The following addresses had permanent fatal errors ----- "|/bin/SMS" (expanded from: ) ----- Transcript of session follows ----- sh: /bin/SMS: not found 554 "|/bin/SMS"... unknown mailer error 1
/HOMEDIR-PFAD/bin/SMS
Subject: Returned mail: unknown mailer error 1 Auto-Submitted: auto-generated (failure) The original message was received at Fri, 12 Jan 2001 15:25:14 +0100 (MET) from eva.kph.tuwien.ac.at [128.130.38.13] ----- The following addresses had permanent fatal errors ----- "|/home/USER/bin/SMS" (expanded from:Hier fehlen die Execute-Rechte für das Script SMS, mit) ----- Transcript of session follows ----- sh: /home/USER/bin/SMS: cannot execute 554 "|/home/USER/bin/SMS"... unknown mailer error 1
chmod +x bin/SMSnachholen.
From: Mail Delivery SubsystemAn dieser Stelle wurde das AWK-Script nicht gefunden, da der Pfad nicht korrekt ist. Vor /bin/SMS.awk sollte der volle Homedirectory-Pfad angegeben werden.Subject: Returned mail: unknown mailer error 2 Auto-Submitted: auto-generated (failure) The original message was received at Fri, 12 Jan 2001 15:28:49 +0100 (MET) from eva.kph.tuwien.ac.at [128.130.38.13] ----- The following addresses had permanent fatal errors ----- "|/home/USER/bin/SMS" (expanded from: ) ----- Transcript of session follows ----- awk: Cannot find or open file /bin/SMS.awk. The source line number is 1. The error context is >>> <<< No recipient addresses found in header 554 "|/home/USER/bin/SMS"... unknown mailer error 2