SMS Client

Meinem Webhoster (candan.de) stellt mir ein SMS-Gateway zur verfügung, bei dem die Kosten für eine SMS bei 0,06 Euro liegen. Gegen die horenden Kosten für eine SMS beim Mobilfunkbetreiber ist das ein wirklich guter Preis. Da das Gateway aber eine Mail in einem besonderen Format erfordert, und ich dieses nicht auswendig lernen wollte, schrieb ich mir ein Frondend in php. Das Frondend generiert die Mail im Entsprechenden Format und sendet sie an die Gatewayadresse und gleichzeitig an meine eigenen Mailadresse.

Das vom Gatway geforderte Format

X-KUNDE: SMS-Benutzername
X-PASSW: SMS-Passwort
X-SMS-NUMMER: Empfänger SMS-Nummer
X-SMS: SMS-Text max. 160 Zeichen
X-SEND-STATUS-MAIL: Email für Sendebestätigung
X-RUECK-MAIL: Email für Antworten auf die SMS
X-RUECK-IDE: Schlüsselwort der Antwort muss in der RückSMS eingetragen sein

Der php Code ist unten zu ersehen, bzw steht als tar.gz zum Download zur Verfügung. Man sollte den Ordner in dem man das php script abgelegt durch ein Password (.htacces) schützen um Missbrauch zu vermeiden.

Todolist

  • SMS Zähler, automatisch rücksetzend am Monatsende
  • Adressbuch (MySQLdb) (scheitert aber daran, das meine Schwester das Formular auch nutzt und sie dann alle meine Nummern einsehen könnte.

Download

Codeschnipsel

Hier das Eingabeformular das vom untenstehenden PHP script erzeugt und verarbeitet wird. (über das hier präsentierte Beispiel ist kein versand möglich!)

SMS-Frondend

Der PHP code

  <?php  echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"de\" lang=\"de\">
  <head>
  <meta http-equiv=\"content-type\"
  content=\"text/html; charset=ISO-8859-1\">
  <meta http-equiv=\"content-language\" content=\"de\">
  <meta name=\"robots\" content=\"noindex,nofollow\">
  <meta name=\"author\" content=\"Bernd Lux\">
  <meta name=\"copyright\" content=\"Copyright &copy; by Bernd L. 2003-2005\">
  <meta name=\"generator\" content=\"XOOPS\">
  <title>Berndlux.de SMS versand</title>
  <link href=\"http://berndlux.de/favicon.ico\" rel=\"SHORTCUT ICON\">
  <link rel=\"stylesheet\" type=\"text/css\" media=\"all\"
  href=\"http://berndlux.de/xoops.css\">
  <link rel=\"stylesheet\" type=\"text/css\" media=\"all\"
  href=\"http://berndlux.de/themes/phpkaox/styleNN.css\">
  <script language=\"JavaScript\">
  <!-- This script and many more are available free online at -->
  <!-- The JavaScript Source!! http://javascript.internet.com -->
  <!-- Begin
  function textCounter(field, countfield, maxlimit) {
   if (field.value.length >= maxlimit +1 ){ // if too long...trim it!
     field.value = field.value.substring(0, maxlimit);
      // otherwise, update 'characters left' counter
    }
    else 
    countfield.value = maxlimit - field.value.length;
   }
  // End -->
   </script>
  </head>
  <body>\n<!-
  ////////////////////////////////////////
  //  Formmailer 1.1                    //
  //  by yarck.de                       //
  //                                    //
  //  Author: Stephan Häse              //
  //  eMail:  stephan@yarck.de          //
  //                                    //
  //  please do dot remove this remark  //
  //                                    //
  ////////////////////////////////////////
  ####################################
   Major changes by Bernd Luxenburger
       bernd1@rlux.org
   to fit the requirements
   as SMS form-sender
      http://berndlux.de/
  ####################################
  ->";
  include "config.php";
 
  // in datei config.php
  // $empfaenger = "blub@domain.de";   // An wen soll sie geschickt werden?
  // $can_nr = "kundenummer";       // die Kundennummer bei candan als sms username
 
  if($send) {
   switch($send) {
    case 'go':
     if (empty($nummer) || empty($pass) || empty($message) || empty($absender))
        {
        echo "
                <b>Fehler!</b><br>
                Nicht alle Felder ausgefuellt<br>
                Um die SMS zu versenden zu koennen muessen alle Felder ausgefuellt sein!<br>
                <a href=javascript:history.back()>Zurueck</a></font>
               </body>\n</html>
             ";
        exit;
       }
 
   mail("$empfaenger","SMS an $nummer von $absender",
  "
  X-KUNDE: $can_nr
  X-PASSW: $pass
  X-SMS-NUMMER: $nummer
  X-SMS: $message
  X-SEND-STATUS-MAIL: $absender
  X-RUECK-MAIL: $absender
  X-RUECK-IDE: $rueck_ide 
 
  --------------------
  Absender IP : $ip
  "
  ,"From: SMS-Script <sms@berndlux.de>");
 
                }
  echo " <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"de\" lang=\"de\">
                 <head>
                  <meta http-equiv=\"content-type\"
                   content=\"text/html; charset=ISO-8859-1\">
                  <meta http-equiv=\"content-language\" content=\"de\">
                  <meta name=\"robots\" content=\"noindex,nofollow\">
                  <meta name=\"author\" content=\"Bernd Lux\">
                  <meta name=\"copyright\" content=\"Copyright &copy; by Bernd L. 2003-2005\">
                  <meta name=\"generator\" content=\"XOOPS\">
                  <title>Berndlux.de SMS versand</title>
                  <link href=\"http://berndlux.de/favicon.ico\" rel=\"SHORTCUT ICON\">
                  <link rel=\"stylesheet\" type=\"text/css\" media=\"all\"
                    href=\"http://berndlux.de/xoops.css\">
                  <link rel=\"stylesheet\" type=\"text/css\" media=\"all\"
                  href=\"http://berndlux.de/themes/phpkaox/styleNN.css\">
                </head>
                <body>
                 Die SMS wurde an $nummer gesendet <br>
                 Die Sendebestaetigung geht an $absender<br><br><br>
                 <big><a href=\"http://berndlux.de/\"> Zurueck auf BerndLux.de </a><br>
                 <a href=\"http://bernd.2freaky.org/sms/sms.php\">Weitere SMS versenden</a></font></big<br>
                 <br><br><br><br><br><small> Orginal Script von
                   <a href=\"http://www.yarck.de\" target=_blank>yarck.de</a></small>
                </body>\n</html>";
          exit;
          }
  echo "
  <center>
  <table cellpadding=\"2\" cellspacing=\"0\">
  <tbody>
    <tr>
      <td class=\"blockTitle\">SMS Versand<br>
      </td>
      <td class=\"blockContent\">
      <form style=\"margin-top: 0px;\"
 
   action=\"$PHP_SELF\" method=\"post\">
         Handy Nummer<br>
        <input name=\"nummer\" size=\"12\" value=\"\" maxlength=\"12\" type=\"text\"><br>
         Deine Mailadresse fuer Sendebestaetigung und Rueckantwort<br>
        <input name=\"absender\" size=\"12\" value=\"bernd@rlux.de\" maxlength=\"25\" type=\"text\"><br>
         SMS GW Passwort: <br>
        <input name=\"pass\" size=\"8\" maxlength=\"5\" type=\"password\"><br>
         SMS Text<br>
        <textarea name=\"message\" wrap=\"physical\" cols=\"12\" rows=\"8\"
 onkeydown=\"textCounter(this.form.message,this.form.remLen,160);\"  onkeyup=\"textCounter(this.form.message,this.form.remLen,160);\"> </textarea>
        <input readonly=\"readonly\" name=\"remLen\" size=\"3\" maxlength=\"3\"  value=\"160\" type=\"text\"> characters left <br>
        <br>
   <!--   <input name=\"Sendebest\" value=\"On\" class=\"formButton\" checked=\"checked\" type=\"checkbox\">Sendebest&auml;tigung<br> -->
   <!--   <input name=\"logging\" value=\"1\" class=\"formButton\"  checked=\"checked\" type=\"checkbox\">SMS logging<br> -->
        <input name=\"rueck_ide\" size=\"2\" value=\"bl\" maxlength=\"2\" type=\"text\"><br>
         Schluesselwort muss fuer die Antwort in der RueckSMS <br>
         als erstes Wort eingetragen sein<br>
        <br>
        <br>
        <input type=hidden name=send value=go>
        <input type=hidden name=ip value=\"$REMOTE_ADDR\">
        <input value=\"SMS Senden\" type=\"submit\">
        <input type=\"reset\" class=\"formButton\" value=\"Zurueksetzen\" >
        <input  value=\"Abbrechen\" onclick=\"javascript:history.go(-1)\" type=\"button\"> <br>
      </form>
      </td>
    </tr>
  </tbody>
  </table>
  </center>
  </body>
  </html>";
  ?>

Bernd 2005/11/10 08:33

sms-client.txt · Zuletzt geändert: 2012/09/10 23:13 (Externe Bearbeitung)
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki