Wie man eine SMS in Delphi empfängt

Der einfachste Weg, SMS von Delphi aus zu empfangen, ist die Verwendung der integrierten HTTP/Rest-SMS-API von Ozeki SMS Gateway. Wenn Sie diese API verwenden, senden Sie SMS-Nachrichten, indem Sie eine HTTP-Post-Anfrage an das SMS-Gateway stellen. Die HTTP-Post-Anfrage enthält eine Nachricht im JSON-Format. Das SMS-Gateway sendet diese SMS an den Empfänger und gibt eine HTTP-200-OK-Antwort auf Ihre Anfrage zurück.

wie man eine sms in delphi empfängt
Abbildung 1 - Wie man eine SMS in Delphi empfängt

Delphi-Code zum Empfangen von SMS

Das folgende Delphi-SMS-Codebeispiel zeigt, wie Sie SMS mit der HTTP-Rest-SMS-API von Ozeki SMS Gateway unter Verwendung der Delphi-Ozeki.Libs.Rest-Unit senden können. Diese Unit wird Ihnen kostenlos zur Verfügung gestellt, und Sie können sie in Ihren Projekten verwenden und modifizieren.

ReceiveSms.delphi
program ReceiveSms;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils,
  Ozeki.Libs.Rest in 'Ozeki.Libs.Rest.pas';

var configuration : Ozeki.Libs.Rest.Configuration;
var api : Ozeki.Libs.Rest.MessageApi;
var result : MessageReceiveResult;
var message : Ozeki.Libs.Rest.Message;
var read : string;

begin
  try
    configuration := Ozeki.Libs.Rest.Configuration.Create;
    configuration.Username := 'http_user';
    configuration.Password := 'qwe123';
    configuration.ApiUrl := 'http://127.0.0.1:9509/api';

    api := Ozeki.Libs.Rest.MessageApi.Create(configuration);

    result := api.DownloadIncoming;

    Writeln(result.ToString);

    for message in result.Messages do
    begin
      Writeln(message.ToString);
    end;

    Readln(read);
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
	

Wie man das Delphi-SMS-Beispiel verwendet:

Dieses Delphi-SMS-Beispiel kann in jeder Delphi-Anwendung verwendet werden. Um es zu verwenden, müssen Sie die Ozeki.Libs.Rest.pas-Unit zu Ihrem Projekt hinzufügen. Nachdem die Unit hinzugefügt wurde, müssen Sie die uses Ozeki.Libs.Rest in 'Ozeki.Libs.Rest.pas';-Direktive in den Header-Bereich Ihres Delphi-Quellcodes einfügen. Dies ermöglicht Ihnen die Verwendung der Klassen, die von der Ozeki.Libs.Rest-Unit bereitgestellt werden. Sie können die Message-Klasse verwenden, um die SMS zu erstellen. Sie können die MessageApi-Klasse verwenden, um die SMS an das SMS-Gateway zu senden. Das SMS-Gateway leitet Ihre Nachricht entweder über eine drahtlose Verbindung oder über das Internet an das Mobilfunknetz weiter.

ReceiveSms.delphi herunterladen

Der in diesem Artikel erklärte Quellcode kann kostenlos heruntergeladen, verwendet und modifiziert werden.
Download: ReceiveSms.delphi.zip (11,9Kb)

Was befindet sich in der ReceiveSms.delphi.zip-Datei?

Die ReceiveSms.delphi.zip-Datei enthält die Ozeki.Libs.Rest-Unit, die Ihnen alle notwendigen Tools zum Senden und Empfangen von SMS-Nachrichten bietet. Sie finden dort auch das ReceiveSms-Projekt, das den Beispielcode enthält, der Ihnen zeigt, wie Sie eine SMS senden können. Dieser Beispielcode ist unten aufgeführt.

receive sms delphi verzeichnis
Abbildung 2 - Was befindet sich in ReceiveSms.delphi.zip

Wie man SMS von Delphi aus sendet (Einfache Anleitung)

Um SMS von Delphi aus zu senden:

  1. Installieren Sie einen HTTP-API-Benutzer
  2. Aktivieren Sie "Log communication events" auf der Registerkarte "Advanced"
  3. Richten Sie Embarcadero Delphi Studio ein
  4. Laden Sie die ReceiveSms.delphi.zip-Datei herunter und entpacken Sie sie
  5. Öffnen Sie die ReceiveSms.dproj-Datei in Delphi Studio durch Doppelklick
  6. Starten Sie die Ozeki SMS Gateway App
  7. Führen Sie den ReceiveSms.dpr-Delphi-Code in Delphi Studio aus
  8. Überprüfen Sie die Protokolle, um zu sehen, ob die SMS gesendet wurde

Ozeki SMS Gateway installieren und einen HTTP-API-Benutzer erstellen

Um SMS von Delphi aus senden zu können, müssen Sie zunächst Ozeki SMS Gateway installieren. Das SMS-Gateway kann auf demselben Computer installiert werden, auf dem Sie Ihren Delphi-Code in Visual Studio entwickeln. Nach der Installation ist der nächste Schritt, Ozeki SMS Gateway mit dem Mobilfunknetz zu verbinden. Sie können eine Test-SMS über die Ozeki-GUI senden, um zu überprüfen, ob Ihre Mobilfunknetzverbindung funktioniert. Der letzte Schritt zur Vorbereitung Ihrer Umgebung ist die Erstellung eines HTTP-SMS-API-Benutzerkontos. Erstellen Sie einen Benutzer mit dem Benutzernamen "http_user" und dem Passwort "qwe123", damit das Beispiel ohne Änderungen funktioniert.

Nachdem die Umgebung eingerichtet ist, können Sie Ihren Delphi-Code ausführen.

HTTP-API-URL zum Senden von SMS von Delphi aus

Um SMS von Delphi aus zu senden, muss Ihre Delphi-Anwendung eine HTTP-Anfrage an das SMS-Gateway stellen. Die API-URL wird unten angezeigt. Beachten Sie, dass die IP-Adresse (127.0.0.1) durch die IP-Adresse Ihres SMS-Gateways ersetzt werden sollte. Wenn Ozeki SMS Gateway auf demselben Computer installiert ist, auf dem die Delphi-SMS-Anwendung läuft, kann dies 127.0.0.1 sein. Wenn es auf einem anderen Computer installiert ist, sollte es die IP-Adresse dieses Computers sein.

http://127.0.0.1:9509/api?action=rest
	
HTTP-Authentifizierung zum Senden von SMS aus Delphi

Um den Delphi-SMS-Client zu authentifizieren, müssen Sie den Benutzernamen und das Passwort in einer base64-kodierten Zeichenkette an den Server in einer HTTP-Anfrage senden. Das verwendete Format lautet: base64(Benutzername+":"+Passwort). In Delphi können Sie den folgenden Code verwenden, um diese Kodierung durchzuführen:

var usernamePassword := username + ':' + password;
var Encoder := TBase64Encoding.Create();
var usernamePasswordEncoded := Encoder.Encode(usernamePassword);
result := Format('Basic %s', [usernamePasswordEncoded]);
	

Wenn Sie beispielsweise den Benutzernamen 'http_user' und das Passwort 'qwe123' kodieren, erhalten Sie die folgende base64-kodierte Zeichenkette: aHR0cF91c2VyOnF3ZTEyMw==. Zum Senden

HTTP-Anfrageheader zum Senden von SMS aus Delphi

Um die SMS-Nachrichten zu senden, müssen Sie die folgenden Zeilen als Header in die HTTP-Anfrage aufnehmen. Beachten Sie, dass wir einen Content-Type und einen Authorization-Header einfügen.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	

HTTP-Anfrage zum Senden von SMS aus Delphi

Um die SMS zu übermitteln, sendet Ihre Delphi-Anwendung eine HTTP-Anfrage ähnlich der untenstehenden. Beachten Sie, dass diese Anfrage nur einen HTTP-Header-Teil enthält, der alle Informationen enthält, die benötigt werden, um jede einzelne Nachricht aus einem bestimmten Ordner herunterzuladen.

GET /api?action=receivemsg&folder=inbox HTTP/1.1
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
Accept: application/json
User-Agent: Mozilla/3.0 (compatible; Indy Library)
	

HTTP-Antwort, die vom Delphi-SMS-Beispiel empfangen wird

Sobald das SMS-Gateway diese Anfrage empfängt, wird es eine HTTP-Antwort generieren. Die HTTP-Antwort enthält einen Statuscode, der angibt, ob die SMS-Übermittlungsanfrage erfolgreich war oder nicht. Sie gibt auch eine JSON-kodierte Struktur zurück, um Ihnen nützliche Details über die Übermittlung der Nachricht zu liefern.

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf8
Last-Modified: Tue, 27 Jul 2021 15:49:18 GMT
Server: 10/10.3.123 Microsoft-HTTPAPI/2.0
User-Agent: OZEKI 10.3.123 (myozeki.com)
Date: Tue, 27 Jul 2021 14:10:33 GMT

{
  "http_code": 200,
  "response_code": "SUCCESS",
  "response_msg": "",
  "data": {
    "folder": "inbox",
    "limit": "1000",
    "data": [
      {
        "message_id": "be5e98cf-2bcb-d8dc-94ae-aa909504afe7",
        "from_connection": "http_user@localhost",
        "from_address": "+36201111111",
        "from_station": "%",
        "to_connection": "http_user@localhost",
        "to_address": "http_user",
        "to_station": "%",
        "text": "Hallo Welt 1",
        "create_date": "2021-07-27 16:06:02",
        "valid_until": "2021-08-03 16:06:02",
        "time_to_send": "2021-07-27 16:06:02",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": true,
        "tags": [
          {
            "name": "Typ",
            "value": "SMS:TEXT"
          }
        ]
      },
      {
        "message_id": "466d737f-68d5-f64d-84d8-ac0a3f950543",
        "from_connection": "http_user@localhost",
        "from_address": "+36202222222",
        "from_station": "%",
        "to_connection": "http_user@localhost",
        "to_address": "http_user",
        "to_station": "%",
        "text": "Hallo Welt 2",
        "create_date": "2021-07-27 16:06:02",
        "valid_until": "2021-08-03 16:06:02",
        "time_to_send": "2021-07-27 16:06:02",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": true,
        "tags": [
          {
            "name": "Typ",
            "value": "SMS:TEXT"
          }
        ]
      },
      {
        "message_id": "36069eca-95c1-bced-8876-ece0dcd74acd",
        "from_connection": "http_user@localhost",
        "from_address": "+36203333333",
        "from_station": "%",
        "to_connection": "http_user@localhost",
        "to_address": "http_user",
        "to_station": "%",
        "text": "Hallo Welt 3",
        "create_date": "2021-07-27 16:06:02",
        "valid_until": "2021-08-03 16:06:02",
        "time_to_send": "2021-07-27 16:06:02",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": true,
        "tags": [
          {
            "name": "Typ",
            "value": "SMS:TEXT"
          }
        ]
      }
    ]
  }
}	
	

Wie man SMS aus Delphi mit der Delphi-SMS-API sendet (Video-Tutorial)

Dieses Video zeigt Ihnen, wie Sie die Datei ReceiveSms.delphi.zip von dieser Seite herunterladen und wie Sie deren Inhalt in Delphi Studio öffnen. Wenn Sie das Video ansehen, werden Sie feststellen, dass der Inhalt der ReceiveSms.delphi-Zip-Datei auf den Windows-Desktop platziert wird. Sie werden auch sehen, dass wir doppelt auf die ReceiveSms.dproj-Projektdatei klicken, um das Projekt zu öffnen.

Delphi-SMS-Beispiel: ReceiveSms.dproj

In dieser Lösung gibt es nur ein Projekt: ReceiveSms.dproj und zwei Dateien: ReceiveSms.dpr und Ozeki.Libs.Rest.pas.

Abbildung 2 - ReceiveSms.dproj

Wie man überprüft, ob die SMS vom HTTP-Benutzer akzeptiert wurde

Nachdem die SMS übermittelt wurde, ist es eine gute Idee, Ihr SMS-Gateway zu überprüfen, um zu sehen, was es empfangen hat. Sie können das Protokoll einsehen, indem Sie die Details des HTTP-Benutzers aus der Ozeki SMS Gateway Management-Konsole öffnen. Das folgende Video zeigt Ihnen, worauf Sie achten müssen.

Video 2 - SMS versenden mit dem oben gezeigten Delphi-Code (Video-Tutorial)

Abschließende Gedanken

Durch das Befolgen dieses Tutorials haben Sie gelernt, wie Sie den HTTP-SMS-API-Benutzer im Ozeki SMS Gateway verwenden, um SMS von Delphi zu empfangen. Dieses Delphi-SMS-Beispiel ist einfach und leicht einzurichten und wird mit jeder Art von Delphi-Anwendung kompatibel sein. Dieser Dienst kann Ihre Organisation effizienter machen, da er Ihnen ermöglicht, wertvolle Informationen schnell und reibungslos zu übermitteln.

Möglicherweise benötigen Sie eine Delphi-SMS-API mit anderen Funktionen, also hören Sie hier nicht auf zu lesen. Finden Sie weitere Möglichkeiten im Artikel Wie man die neueste Delphi-SMS-API-Unit von GitHub herunterlädt.

Laden Sie das Ozeki SMS Gateway herunter und entwickeln Sie Ihr Unternehmen jetzt weiter!

More information