Handbuch Versendung von SMS per URL Aufruf über http oder https-Request


 
  1. Parameter für Text-SMS, Unicode SMS
  2. Parameter für WAP-Push
  3. Statuscodes
  4. Sendeberichte empfangen
  5. Antworten empfangen
  6. Guthabenabfrage
  7. Programmier-Beispiele

Sie können über die Eingabe einer Adresse in Ihrem Browser, bzw. über einen automatischen Aufruf der Adresse

http://www.sms4.de/cgi-bin/sms_out.pl
mit den folgenden Parametern eine SMS versenden:

 

1.) Parameter für Text-SMS

Parameter Beispiel Beschreibung
handynr (Pflicht) handynr=491743333333 Die Zielnummer. Bitte immer mit Ländercode ohne + oder führende Nullen.
user (Pflicht) user=XYZ Ihr SMS4.de Benutzername.
pwd (Pflicht) pwd=XYZ Das Passwort Ihres Benutzers.
kdnr (Pflicht) kdnr=XY12345 Ihre SMS4.de Kundennummer hier kostenlos beantragen
text (Pflicht) text=hier+k%F6nnte+der+Text+stehen Der Text der SMS, 160 Zeichen (ISO-8859-15).
tarif (optional) tarif=1 Bei Tarif ist 1 oder 7 möglich. Details zu den SMS Tarifen finden Sie in der SMS-Preisliste
(Der Vorgabewert ist 1).
absender (optional) absender=Der-Peter
oder:
absender=%20%2B49174210000
oder:
absender=0049174210000
Die Absenderkennnung nur für Tarif 1 und 7:
6 bis 11 Zeichen Text (keine Sonderzeichen) oder 6 bis 14 Ziffern, bei SMS ins Festnetz sind nur Ziffern erlaubt
(Den Vorgabewert können Sie in den Einstellungen angeben).
Ein + für zu Beginn der Absenderkennung wird als %20%2B URL-codiert. Sie könne auch 0049.... verwenden.
sendezeit (optional) sendezeit=20240501354 Hier im Beispiel: SMS Versenden am 01.05.2024 um 13:54 Uhr. Das Format ist JJJJMMDDHHMM. Also Jahr Monat Tag Stunde Minute ohne Leerzeichen, mit führenden Nullen bei Werten <10 und ohne Sekunden. 24 h Format.
v (optional) v=1 Bei v=1 liefert der URL-Aufruf zusätzlich eine eindeutige SMS-Id zurück. Diese Id können Sie z.B. für Nachfragen verwenden (analog der Id in den CSV-Logfiles).
kodierung (optional) text=0442043504410442&kodierung=ucs
Das Wort тест (Test) in kyrillischer Schrift
Nur bei Tarif 1: Um SMS mit internationalen Schriftzeichen bzw. Sprachen zu senden, kann der Parameter kodierung auf ucs gesetzt werden. Dann muss der Text in Unicode (UCS, Unicode Character Set) kodiert sein. Die Länge von UCS kodierten SMS ist auf 70 Zeichen begrenzt.
Übersicht UCS-Zeichen:
http://www.unicode.org/charts/
Lesen Sie auch in unseren FAQ:
Wie versende ich Unicode / UCS Nachrichten?
guthaben (optional) guthaben=1 Bei guthaben=1 liefert der URL-Aufruf zusätzlich das aktuelle Restguthaben in Euro (nur für Prepaidkunden) nach Versand der SMS zurück.
replyto (optional) replyto=an@1andere.de Antworten (Tarif 7) und Sendeberichte (Tarif 1 u. 7) werden nicht an die E-Mail des Benutzers, sondern an die angegebene REPLYTO E-Mail-Adresse gesendet.
test (optional) test=1 test=1 aktiviert den Testmodus. SMS werden nicht versendet und nicht berechnet.

Bitte Benutzername, Passwort und Kundennummer mit Ihren Daten ersetzen.
Falls Sie noch keine Zugangsdaten haben, bekommen Sie diese hier.

Beispiel-Aufruf Text-SMS (GET)

Beispiel-Aufruf für Unicode (UCS-kodierte) Text-SMS, nur mit Tarif 1 möglich:

Der HTTP-Aufruf muss URL-encoded sein, also kein Ä sondern %C4 etc.
Eine vollständige Übersicht gibt es hier: urlencode-chart.
Normalerweise werden die Texte unter PHP und Perl mit entsprechenden Funktionsaufrufen automatisch codiert (urlencode).
Die URL rufen Sie in PHP mit fopen() auf, in Perl mit HTTP::Request (siehe Beispiele).

Zeilenumbrüche in der SMS werden im URL-String durch %0A erzeugt.
Die Parameter können per GET oder POST übertragen werden.

 

2.) Parameter für WAP-Push (nur mit Tarif 1 oder 7 möglich!)

Parameter Beispiel Beschreibung
handynr (Pflicht) handynr=491743333333 Die Zielnummer. Bitte immer mit Ländercode ohne + oder führende Nullen.
user (Pflicht) user=XYZ Ihr SMS4.de Benutzername.
pwd (Pflicht) pwd=XYZ Das Passwort Ihres Benutzers.
kdnr (Pflicht) kdnr=XY12345 Ihre SMS4.de Kundennummer hier kostenlos beantragen
text (Pflicht) text=SMS4,http://wap.sms4.de Parameter text in folgendem Format:
text=Titel,WAP-URL
Der Titel ist optional (wird auf dem Endgerät angezeigt). Verwenden Sie zum Trennen des Titels und der URL ein Komma. Setzen Sie im Titel kein Komma. Wird kein Titel angegeben, dann ist die URL gleichzeitig auch der Titel.
Es stehen insgesamt 160 Zeichen zur Verfügung (160 Zeichen = Titel + Komma + WAP-URL).
wappush wappush=1 Der Parameter wappush muss auf 1 gesetzt sein, sonst wird lediglich eine Text-SMS versendet.
tarif tarif=1 für WAP-Push bitte immer Tarif 1 angeben, sonst wird lediglich eine Text-SMS versendet. Details zu den Tarifen finden Sie in der Preisliste
(Der Vorgabewert ist 3).
v (optional) v=1 Bei v=1 liefert der URL-Aufruf zusätzlich eine eindeutige SMS-Id zurück. Diese Id können Sie z.B. für Nachfragen verwenden (analog der Id in den CSV-Logfiles).
guthaben (optional) guthaben=1 Bei guthaben=1 liefert der URL-Aufruf zusätzlich das aktuelle Restguthaben in Euro (nur für Prepaidkunden) nach Versand der SMS zurück.
replyto (optional) replyto=an@1andere.de Sendeberichte (Tarif 1 u. 7) werden nicht an die E-Mail des Benutzers, sondern an die angegebene REPLYTO E-Mail-Adresse gesendet.
test (optional) test=1 test=1 aktiviert den Testmodus. SMS werden nicht versendet und nicht berechnet.

Bitte Benutzername, Passwort und Kundennummer mit Ihren Daten ersetzen.
Falls Sie noch keine Zugangsdaten haben, bekommen Sie diese hier.

Beispiel-Aufruf WAP-Push (GET), nur mit Tarif 1 möglich:

 

3.) Statuscodes

Der Aufruf der URL liefert im Erfolgsfall zurück:

<smsout>
  <status>0</status>
  <statustext>SMS erfolgreich versendet</statustext>
</smsout>
oder im erweiterten Format mit v=1:
<smsout>
  <status>0</status>
  <statustext>SMS erfolgreich versendet</statustext>
  <smsid>123456789</smsid>
</smsout>
oder mit Anzeige des Restguthabens guthaben=1:
<smsout>
  <status>0</status>
  <statustext>SMS erfolgreich versendet</statustext>
  <guthaben>23.35</guthaben>
</smsout>
Definierte Statuscodes derzeit:
 0 = SMS erfolgreich versendet
10 = Falsche Authentifizierung, Ungueltige Kombination User/Passwort/Kundennummer
11 = Falsche Authentifizierung, User fehlt
12 = Falsche Authentifizierung, Passwort fehlt
13 = Falsche Authentifizierung, Kundennr fehlt
20 = Handynummer fehlt
21 = Ungueltige Handynr
22 = Handynummer zu kurz
23 = Handynummer zu lang
25 = SMS Text fehlt
30 = Ungueltiger Tarif
31 = Ungueltige Kombination Tarif/Handynummer
40 = Test SMS aufgebraucht
41 = Guthaben aufgebraucht
42 = Monatslimit erreicht
51 = Ungueltige Absenderkennung
52 = Absenderkennung zu kurz
99 = Stoerung beim SMSC
Lesen Sie auch in unseren FAQ: Wie kann ich den Statuscode der HTTP-Schnittstelle verarbeiten?

 

4.) Sendeberichte empfangen

Siehe unter Handbuch Sendeberichte über HTTP Push

 

5.) Antworten empfangen

Siehe unter Handbuch Antworten über HTTP Push

 

6.) Guthabenabfrage

Siehe unter Handbuch Guthabenabfrage über http oder https-Request

 

7.) Programmier-Beispiele

Beispielcode für PHP:

<?php
/* ================================================
Beispielcode für den Versand von SMS über URL-Aufruf
von www.sms4.de
===================================================*/

$kdnr  = "XY12345";	// Bitte mit Ihrer Kundennr ersetzen
$pw   = "8899";		// Bitte mit Ihrem Passwort ersetzen
$user = "Andre";	// Bitte mit Ihrem Usernamen ersetzen


// Ihre Absenderkennung ( 6 bis 11 Zeichen Text oder 6 bis 14 Ziffern )
$absender="017488997766"; 

// Handynummer inklusive Landesvorwahl und Netz
$handynr = "491741234567";

$text = "Das ist ein Test mit PHP"; // Text der SMS 

$tarif = 1; // mit Absenderkennung und Sendeberichten, direkte Terminierung im SMSC

// URL zusammenbauen

$url = "http://www.sms4.de/cgi-bin/sms_out.pl?" 
 . "handynr="  . UrlEncode($handynr) 
 . "&user=" . UrlEncode($user) 
 . "&pwd=" . UrlEncode($pw) 
 . "&kdnr="  . UrlEncode($kdnr) 
 . "&text="  . UrlEncode($text)
 . "&tarif="    . UrlEncode($tarif)
 . "&absender="    . UrlEncode($absender)
 ;

// echo $url;

/* Aufrufen der URL */ 

$message="";

if ( ($f = @fopen($url, "r")))  {
 $max_zeichen=256;
 $daten = fgets($f, $max_zeichen);
	while ($daten) {
	 $message.= $daten;
	 $daten = fgets($f, $max_zeichen);	    
	}
}
else { 
 echo "Fehler: URL $url konnte nicht geoeffnet werden.";
/* 
Wenn Sie Dateien nicht mit fopen() öffnen können, sollten Sie
Ihre Server-Konfiguration überprüfen. Die Option allow_url_fopen in
der php.ini muss auf TRUE gesetzt sein. 
Wichtige Hinweise zu fopen siehe
http://www.php.net/manual/de/wrappers.http.php
*/
} 

echo $message;

?>

 

Beispielcode für Perl:

#!/usr/bin/perl

#############################################################
# Beispielcode für den Versand von SMS über einen POST-Request
# von www.sms4.de
#############################################################

# Standard-CGI-Routinen laden
use CGI;

$kdnr= 'XY12345';# Bitte mit Ihrer Kundennr ersetzen
$pw= '8899';# Bitte mit Ihrem Passwort ersetzen
$user = 'Andre';# Bitte mit Ihrem Usernamen ersetzen

# Ihre Absenderkennung ( 6 bis 11 Zeichen Text oder 6 bis 14 Ziffern )
$absender = 'Der Peter';

# Handynummer inklusive Landesvorwahl und Netz
$handynr = "491741234567";

$tarif = 1; # mit Absenderkennung und Sendeberichten, direkte Terminierung im SMSC

$text = 'Das ist ein Test mit Perl';	# Text der SMS

# Aufrufen der URL via POST

use HTTP::Request::Common;
use LWP::UserAgent;
$ua = new LWP::UserAgent;
$res = $ua->request(
POST 'http://www.sms4.de/cgi-bin/sms_out.pl',
[
handynr => $handynr,
user => $user,
pwd => $pw,
kdnr => $kdnr,
text => $text,
tarif => $tarif,
absender => $absender
]

);

if ($res->is_error) {
# HTTP error
}

my $output = new CGI;
print $output->header();

# Meldung ausgeben

if ($res->is_success) {
   print $res->content;
}
else {
   die $res->status_line;
}

 

Beispielcode für ASP:

<%@LANGUAGE="VBScript"%>
<%
' Beispielcode für den Versand von SMS über einen POST-Request
' von www.sms4.de

Dim xmlobj, url

Dim kdnr 
Dim pw 
Dim user
Dim absender
Dim handynr
Dim tarif
Dim text  

kdnr = "XY12345" 'Bitte mit Ihrer Kundennr ersetzen
pw = "8899" 'Bitte mit Ihrem Passwort ersetzen
user = "Andre" 'Bitte mit Ihrem Usernamen ersetzen

'Ihre Absenderkennung ( 6 bis 11 Zeichen Text oder 6 bis 14 Ziffern )
absender = "Der Peter"

'Handynummer inklusive Landesvorwahl und Netz
handynr="491741234567"

tarif = 1 'mit Absenderkennung und Sendeberichten, direkte Terminierung im SMSC

text = "Das ist ein Test mit ASP" 'Text der SMS 

' URL zusammenbauen
url = "handynr=" &  Server.URLEncode(handynr)
url = url & "&user=" &  Server.URLEncode(user)
url = url & "&pwd=" &  Server.URLEncode(pw)
url = url & "&kdnr=" &  Server.URLEncode(kdnr)
url = url & "&text=" &  Server.URLEncode(text)
url = url & "&tarif=" &  Server.URLEncode(tarif)
url = url & "&absender=" &  Server.URLEncode(absender)

'Aufrufen der URL via POST
set xmlobj = Server.CreateObject("Msxml2.ServerXMLHTTP")
' set xmlobj = Server.CreateObject("Msxml2.ServerXMLHTTP.4.0")
' set xmlobj = Server.CreateObject("Microsoft.XMLHTTP")
xmlobj.open "POST", "http://www.sms4.de/cgi-bin/sms_out.pl", false
xmlobj.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
xmlobj.Send url

'Meldung ausgeben
if (xmlobj.status <> 200 ) then
' HTTP error
else
	Response.write(xmlobj.responseText)
end if

set xmlobj = nothing
%>

 

Beispielcode für JSP:

<%@ page import="java.util.*" %>
<%@ page import="java.net.*" %>
<%@ page import="java.io.*" %>

<%

/* ========================================================
Beispielcode für den Versand von SMS über einen POST-Request
von www.sms4.de
===========================================================*/

String kdnr = "XY12345";		// Bitte mit Ihrer Kundennr ersetzen
String pw = "8899";		// Bitte mit Ihrem Passwort ersetzen
String user = "Andre";		// Bitte mit Ihrem Usernamen ersetzen

// Ihre Absenderkennung ( 6 bis 11 Zeichen Text oder 6 bis 14 Ziffern )
String absender = "Der Peter";

// Handynummer inklusive Landesvorwahl und Netz
String handynr = "491741234567";

String tarif = "1"; // mit Absenderkennung und Sendeberichten, direkte Terminierung im SMSC
String text = "Das ist ein Test mit JSP"; // Text der SMS

// URL zusammenbauen

String uri = "handynr=" + URLEncoder.encode(handynr);
uri = uri + "&user=" + URLEncoder.encode(user);
uri = uri + "&pwd=" + URLEncoder.encode(pw);
uri = uri + "&kdnr=" + URLEncoder.encode(kdnr);
uri = uri + "&text=" + URLEncoder.encode(text);
uri = uri + "&tarif=" + URLEncoder.encode(tarif);
uri = uri + "&absender=" + URLEncoder.encode(absender);


// Aufrufen der URL via POST
try {
	URL http = new URL("http://www.sms4.de/cgi-bin/sms_out.pl");

	try {
		URLConnection connect = http.openConnection();
		connect.setDoOutput(true);
		connect.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
		PrintWriter output = new PrintWriter(connect.getOutputStream());
		output.println(uri);
		output.close();
		
		BufferedReader input = new BufferedReader(new InputStreamReader(connect.getInputStream()));
		String res = input.readLine();
		input.close();
		
		//Meldung ausgeben
		out.println(res);
	}
	catch (IOException ex) {
		//HTTP error
		out.println(ex);
	}
}
catch(MalformedURLException e) {
	out.println(e);
}

%>

 

Beispiel für JAVA 6

Download Quellcode
Parameter:
 -a,--a                 Absenderkennung
 -d,--debug             Debugmodus
 -h,--help              Diese Hilfe anzeigen.
 -hnr,--handynummer     Handynummer (Pflicht)
 -kdnr,--kundennummer   Kundennummer (Pflicht)
 -pw,--passwort         Passwort (Pflicht)
 -t,--tarif             Tarif 1 oder 7
 -txt,--text            Text der SMS (Pflicht).
 -u,--user              User (Pflicht)
 
Beispielaufruf:
java SMS4 -hnr=491743333333 -u=XYZ -pw=XYZ -kdnr=XY12345 -txt="Dies ist ein Text" -t=1
 

 

Beispiel für Visual C# 2008

Download Quellcode
Parameter:
 -a,--a         Absenderkennung
 -d,--d         Debugmodus
 -h,--h         Diese Hilfe anzeigen.
 -hnr,--hnr     Handynummer (Pflicht)
 -kdnr,--kdnr   Kundennummer (Pflicht)
 -pw,--pw       Passwort (Pflicht)
 -t,--t         Tarif 1 oder 7
 -txt,--txt     Text der SMS (Pflicht).
 -u,--u         User (Pflicht)
 
Beispielaufruf:
SMS4 -hnr=491743333333 -u=XYZ -pw=XYZ -kdnr=XY12345 -txt="Dies ist ein Text" -t=1
 

 

Beispiel für Visual C++ 6.0

Download Quellcode
Parameter: User Passwort Kundennr Handynr "Text" [Absender] [Tarif]
 
Beispielaufruf:
SMS4 XYZ XYZ XY12345 491743333333 "Dies ist ein Text" Peter 1
 

 

Beispiel für Visual Basic

Download Quellcode
Private Sub CommandButton1_Click()

Dim res

' Aufruf der SMS Sendefunktion: User, Passwort, Kundennr, Handynr, Text, Absender, Tarif
res = SMS4("XYZ", "XYZ", "XY12345", "491743333333", "Dies ist ein Text", "Der Peter", 1)
MsgBox res

End Sub 

 

Beispiele für Aufruf aus Kommandozeile

Aufruf Internet Explorer übernimmt die Proxy-Einstellungen, daher auch Versand aus Firmennetzen möglich:
"C:\Program Files\Internet Explorer\iexplore.exe"  -extoff -private "https://www.sms4.de/cgi-bin/sms_out.pl?handynr=49174123456&user=abc&pwd=123=kdnr=abca&text=Dies+ist+ein+Text&tarif=1&absender=ichbins"
Fenster schliessen mit
taskkill /f /im iexplore.exe
mit Wget:
wget -q -O - "http://www.sms4.de/cgi-bin/sms_out.pl?handynr=491743333333&user=XYZ&pwd=XYZ&kdnr=XY12345&text=Dies+ist+ein+Text&tarif=1"

	oder per POST-Request:

wget -q -O - --post-data "handynr=491743333333&user=XYZ&pwd=XYZ&kdnr=XY12345&text=Dies+ist+ein+Text&tarif=1" http://www.sms4.de/cgi-bin/sms_out.pl
mit Lynx:
lynx -source "http://www.sms4.de/cgi-bin/sms_out.pl?handynr=491743333333&user=XYZ&pwd=XYZ&kdnr=XY12345&text=Dies+ist+ein+Text&tarif=1"
mit cURL:
curl "http://www.sms4.de/cgi-bin/sms_out.pl?handynr=491743333333&user=XYZ&pwd=XYZ&kdnr=XY12345&text=Dies+ist+ein+Text&tarif=1"

	oder per POST-Request und via SSL:

curl -k --data-urlencode "handynr=491743333333" --data-urlencode "user=XYZ" --data-urlencode "pwd=XYZ" --data-urlencode "kdnr=XY12345" --data-urlencode "text=Dies ist ein Text via SSL" https://www.sms4.de/cgi-bin/sms_out.pl