Wie man SMS in C# empfängt
Dieser Artikel gibt Informationen darüber, wie man SMS in C# mit der Ozeki SMS Gateway gesendet wurde. Lesen Sie weiter, um mehr über dieses Verfahren zu erfahren!
Warum möchten Sie SMS in C# empfangen?
Es gibt verschiedene Gründe, warum Sie SMS in C# empfangen möchten. Sie möchten möglicherweise Daten von Sensoren oder Mobilfunknutzern sammeln, Sie können SMS-Dienste erstellen, die eine Antwort mit Informationen senden, oder Sie können Ihre Nutzer einfach bitten, den Empfang einer SMS zu bestätigen.
Voraussetzungen
- Ozeki SMS Gateway installiert
- Microsoft Visual Studio
- C# SMS-Empfangsbeispiel (OzekiConsole.zip)
Wie man SMS in C# empfängt (Schnelle Schritte)
Wie man SMS in C# empfängt- Laden Sie das C# SMS-Empfangsbeispiel herunter
- Öffnen Sie die Lösung in Visual Studio
- Verbinden Sie sich mit der Ozeki SMS Gateway
- Empfangen Sie eine simulierte SMS in C#
- Verbinden Sie sich mit dem Mobilfunknetz
- Empfangen Sie eine SMS in C#, die von einem Mobiltelefon gesendet wurde
- Überprüfen Sie die Protokolle in der SMS Gateway
- Überprüfen Sie den Zustellbericht auf Ihrem Mobiltelefon
C# Codebeispiel zum Empfangen von Textnachrichten
Das folgende C# SMS-Codebeispiel skizziert die wichtigsten Schritte, um einen SMS-Empfangsdienst zu erstellen. Die Ozeki C# SMS API ist kostenlos. Sie können die API-Bibliothek, die mitgelieferten Beispiele ändern und sie in Ihrem Projekt verwenden und frei weiterverteilen oder davon abgeleitete Werke erstellen. Das folgende Beispiel zeigt, wie Sie sich für das OnMessageReceived-Ereignis in C# anmelden und wie Sie dieses Ereignis behandeln. Das Beispiel gibt die eingehende SMS-Nachricht auf der Konsole aus.
class Program { static OzxClient Client; static void Main(string[] args) { Client = new OzxClient(); Client.AutoReconnect = true; Client.OnMessageReceived += Client_OnMessageReceived; Client.Connect("127.0.0.1",9580,"testuser","testpass"); } static void Client_OnMessageReceived(object sender, OzxArgs<IOzxMessage> e) { Console.WriteLine("Nachricht empfangen: " + e.Item.ToString()); } }
Der e.Item-Parameter ist eine vollständige OzxMessage. Das bedeutet, dass Sie alle Details der SMS-Nachricht in Ihrem C# SMS API-Ereignis haben. Diese Details umfassen die Absender-ID der SMS, die Telefonnummer, an die die SMS gesendet wurde, den SMS-Text und die entsprechenden Zeitstempel.
Einer der größten Vorteile der Verwendung der Ozeki C# SMS API ist, dass Sie eingehende SMS-Nachrichten sofort erhalten. Sobald sie die SMS Gateway erreichen, werden sie über die bestehende TCP/IP-Verbindung an Ihren C# SMS-Client weitergeleitet. Das bedeutet, dass Sie keine Verzögerungen erleben werden.
Wenn Ihr C# SMS API-Client nicht mit der SMS Gateway verbunden ist, wenn die SMS empfangen wird, wird die SMS im Posteingangsordner der SMS Gateway gespeichert. Das bedeutet, dass Ihre eingehenden Nachrichten nicht verloren gehen, selbst wenn die SMS-Software, die Sie mit der C# SMS API geschrieben haben, offline ist. Dies liegt daran, dass die Ozeki SMS Gateway tatsächlich ein SMS-Server ist.
Schritt 1 - Laden Sie die Ozeki C# SMS-Bibliothek herunter
Navigieren Sie zu https://ozeki-sms-gateway.com/attachments/5755/OzekiConsole.zip und laden Sie die Zip-Datei mit Ihrem Browser herunter. Die Zip-Datei landet in Ihrem Download-Verzeichnis (Abbildung 2). Sie können den Download direkt im Windows Explorer öffnen. Die heruntergeladene Zip-Datei enthält den Beispielcode, den Sie verwenden können, um SMS in C# zu empfangen.
Schritt 2 - Extrahieren Sie die C# SMS-Bibliothek
Extrahieren Sie die C# SMS-Bibliothek, indem Sie mit der rechten Maustaste auf die Datei OzekiConsole.zip klicken (Abbildung 2). Dadurch wird das Kontextmenü angezeigt. Wählen Sie im Kontextmenü "Alle extrahieren...". Dadurch wird das "Extrahieren"-Dialogfenster angezeigt, in dem Sie auf "Extrahieren" klicken müssen.
Klicken Sie auf die Schaltfläche "Extrahieren" im Dialogfenster "Alle extrahieren" (Abbildung 3).
Schritt 3 - Öffnen Sie das Projekt in Visual Studio
Öffnen Sie den Ordner OzekiConsole. Dieser Ordner wird angezeigt, nachdem Sie das OzekiConsole.zip-Paket extrahiert haben. Doppelklicken Sie im OzekiConsole-Ordner auf die Datei OzekiConsole.sln. Dadurch wird das Dialogfeld "Wie möchten Sie diese Datei öffnen?" angezeigt. Wählen Sie in diesem Dialogfeld "Visual Studio" aus. Nachdem Visual Studio ausgewählt wurde, klicken Sie auf OK, um das C#-Beispielprojekt zu öffnen. (Abbildung 4)
Schritt 4 - Klicken Sie auf Program.cs
Öffnen Sie Program.cs, indem Sie auf die Datei im Projektmappen-Explorer auf der linken Seite des Bildschirms klicken. Dies ist der Hauptcode dieses C#-Beispielprojekts. Dieser Code enthält Beispiele, wie Sie SMS von C# aus senden und wie Sie SMS in C# empfangen können. Der Code ist nicht zu lang, er umfasst etwa 300 Zeilen. Er demonstriert die volle Funktionalität der C# SMS API. (Abbildung 5)
Schritt 5 - Setzen Sie einen Haltepunkt im SMS-Empfangscode
Finden Sie den OnMessageReceived-Ereignishandler und setzen Sie einen Haltepunkt auf die Anfangszeile der Prozedur. Dieser Haltepunkt gibt Ihnen die Möglichkeit, das OnMessageReceived-Ereignis zu erfassen. Das OnMessageReceived-Ereignis wird ausgelöst, wenn Ihr C# SMS-Client die SMS-Nachricht vom SMS-Gateway empfängt. (Abbildung 6)
Schritt 6 - Erstellen Sie ein OZX-Benutzerkonto für die SMS-API
Damit sich das C# SMS-API-Beispiel mit dem SMS-Gateway verbinden kann, müssen Sie ein OZX-Benutzerkonto im SMS-Gateway erstellen. Navigieren Sie dazu zur Verwaltungskonsole des SMS-Gateways, indem Sie die URL https://127.0.0.1:9515 öffnen und auf den Link "Neuen Benutzer/Anwendung hinzufügen" auf der rechten Seite des Bildschirms klicken. (Abbildung 7)
Der Link "Neuen Benutzer/Anwendung hinzufügen" zeigt eine Liste installierbarer Benutzertypen an. Sie müssen das OZX-Benutzerkonto in der Liste finden. Das OZX-Benutzerkonto verwendet ein hochoptimiertes SMS-Protokoll, das es Ihrer C# SMS-Anwendung ermöglicht, über das Netzwerk mit dem SMS-Gateway zu kommunizieren. Da das SMS-Gateway und der C# SMS-Client über das Netzwerk kommunizieren, können Sie eine Textnachricht in Ihrem C#-Projekt empfangen, selbst wenn das Projekt auf einem anderen Computer läuft. (Abbildung 8)
Geben Sie einen Benutzernamen und ein Passwort an. In unserem Beispiel verwenden wir testuser als Benutzernamen und testpass als Passwort. Der C# SMS-Client verwendet diese Anmeldedaten, um eine Verbindung zum SMS-Gateway herzustellen. Wenn Sie mehr als eine C# SMS-API-Verbindung wünschen, können Sie mehrere OZX-Benutzerkonten erstellen. Jedes Benutzerkonto hostet seinen eigenen C# SMS-API-Client. Um zu entscheiden, welcher C# SMS-Client eine eingehende SMS empfängt, müssen Sie eingehende Routen in der Ozeki SMS-Routing-Tabelle erstellen. (Abbildung 9)
Aktivieren Sie die Protokollierungsoptionen für das C# SMS-API-Konto, um Kommunikationsprotokolle zu erhalten. Ich empfehle, zunächst alle Protokollierungs-Checkboxen anzukreuzen, damit Sie detaillierte Informationen darüber erhalten, was mit einer Nachricht passiert. Wenn Sie eine Textnachricht erhalten, sehen Sie diese im Protokoll, bevor sie an Ihren C# SMS-Client weitergeleitet wird. (Abbildung 10)
Schritt 6 - Fügen Sie eine neue Route hinzu, um eingehende SMS zu simulieren
Erstellen Sie eine neue SMS-Route, um dem Administrator-Benutzer zu ermöglichen, Test-SMS-Nachrichten an den C# SMS-API-Client zu senden. Eines der besten Dinge bei der Verwendung des Ozeki SMS-Gateways ist, dass es Ihnen ermöglicht, Ihre SMS-Nachrichten mit einer Routing-Tabelle zu verwalten. Sie können verschiedene Mobilfunkverbindungen einrichten und entscheiden, welche SMS wohin gesendet werden soll. In unserem Beispiel möchten wir SMS-Nachrichten, die vom Administrator-Konto kommen, an den C# SMS-API-Client weiterleiten. In einem realen System leiten Sie keine SMS vom Administrator-Konto weiter, sondern Sie leiten SMS-Nachrichten, die über Mobilfunkverbindungen empfangen werden, an Ihren C# SMS-API-Client weiter.
Um eine neue SMS-Route zu erstellen, klicken Sie im Ozeki SMS-Gateway-Dashboard auf "Neue Route hinzufügen" (Abbildung 11).
Um eine Textnachricht zu empfangen, während Sie Ihren C# SMS-Code schreiben, verwenden Sie das SMS-Gateway-Verfassen-Formular und senden die SMS als Administrator-Benutzer. Die SMS-Route, die wir erstellen werden, leitet die SMS-Nachrichten, die vom Administrator kommen, an das testuser-Konto weiter. Das testuser-Konto leitet die SMS dann an den C# SMS-Client weiter (Abbildung 12).
Wählen Sie testuser als Ziel für Ihre eingehenden SMS-Nachrichten im Routing-Details-Formular aus. Diese Route sendet SMS-Nachrichten vom Administrator-Benutzer an testuser. Der testuser leitet die empfangenen SMS-Nachrichten an den C# API-Client weiter (Abbildung 13).
Schritt 7 - Starten Sie das C# SMS-Beispielprojekt
Um Ihr C# SMS-Projekt zu starten, müssen Sie auf die Start-Schaltfläche in der Visual Studio-Symbolleiste klicken. Nachdem Sie diese Schaltfläche angeklickt haben, wird Visual Studio den Code kompilieren und in der Entwicklungsumgebung ausführen. Die Programmausführung wird angehalten, wenn der Algorithmus einen Haltepunkt erreicht. Da unser Beispiel eine Konsolenanwendung ist, erscheint das schwarze Konsolenfenster, sobald die Ausführung beginnt. (Abbildung 14)
Geben Sie "help" in das Konsolenfenster ein. Der Hilfetext listet die verfügbaren Befehle für dieses Beispielprojekt auf. Der erste Befehl, den Sie verwenden werden, ist der "connect"-Befehl. Geben Sie "connect 127.0.0.1:9580 testuser testpass" in das Konsolenfenster ein, um Ihren C# SMS-Code mit dem SMS-Gateway zu verbinden. Beachten Sie, dass 127.0.0.1 bedeutet, dass das SMS-Gateway auf demselben PC läuft wie Ihr C# SMS-Code. 9580 ist der TCP/IP-Port, den das SMS-Gateway verwendet, um C# SMS-Clients (OZX-Benutzer) zu akzeptieren, und die Anmeldedaten testuser und testpass sind diejenigen, die wir in Schritt 6 dieses SMS-Tutorials beim Erstellen des OZX-Benutzerkontos definiert haben. (Abbildung 15)
Sobald Sie mit dem SMS-Gateway verbunden sind, können Sie Ihre erste SMS an Ihren C# API-Client senden.
Schritt 8 - Senden Sie eine Test-SMS
Senden Sie eine Test-SMS-Nachricht, indem Sie auf die Schaltfläche "Neu" in der Ozeki-Symbolleiste in der SMS-Gateway-Verwaltungskonsole klicken. Beim Senden Ihrer Test-SMS müssen Sie eine Empfängeradresse und den Nachrichtentext angeben. Auf der Registerkarte "Erweitert" können Sie auch eine Absender-ID definieren, wie z.B. einen alphanumerische Absender-ID für Ihre SMS. (Abbildung 16)
Klicken Sie auf OK, um die Test-SMS zu senden. Ihr SMS-Gateway zeigt Ihnen die Ereignisse im Zusammenhang mit dem SMS-Versand an, und Sie erhalten eine Nachrichten-ID. Sie können die GUID-Zeichenfolge in der letzten Zeile von Abbildung 17 erkennen.
Nachdem die SMS vom Administrator gesendet wurde, wird sie vom OZX-Benutzerkonto "testuser" empfangen. Dieses Benutzerkonto leitet die SMS über das Netzwerk an den C# SMS-Client weiter. Der C# SMS-Client empfängt den Text über die TCP/IP-Verbindung, die durch die "connect"-Methode hergestellt wurde. Wenn Sie einen Haltepunkt im OnMessageReceived-Ereignis gesetzt haben, wird die Programmausführung an dieser Stelle angehalten.
Schritt 9 - Empfangen Sie SMS in der C#-Konsole
Lesen Sie die empfangene Nachricht in der C#-Konsole. Sie werden sehen, dass die SMS von admin@localhost an die Telefonnummer +361111111 gesendet wurde. Der C# SMS API-Client hat den Text "Hello c sharp client" empfangen (Abbildung 18). Die Textnachricht wurde dem C#-Client in Form eines C#-Ereignisses übermittelt. Der OnMessageReceived-Ereignishandler wird aufgerufen, wenn dieses Ereignis ausgelöst wird, und die Nachricht wurde in den Eingabeparameter der OzMessageReceived-Ereignishandlermethode eingefügt.
Als Nächstes sollten Sie sich das Protokoll im SMS-Gateway ansehen.
Schritt 10 - Protokolle im SMS-Gateway anzeigen
Öffnen Sie die Detailseite des "testuser"-Kontos, indem Sie auf den Link "testuser" im Ozeki SMS-Gateway-Dashboard klicken. Dies führt uns zum Ereignisprotokoll des "testuser"-Kontos. In diesem Ereignisprotokoll erwarten wir die Kommunikation zwischen dem C# SMS-Client und dem SMS-Gateway zu sehen. Wir erwarten auch, die empfangene SMS-Nachricht im Kommunikationsprotokoll zu finden. (Abbildung 19)
Suchen Sie nach der Zeile "Received." im Ereignisprotokoll des "testuser"-Kontos. In dieser Zeile sehen Sie die SMS, die vom C# SMS-Client empfangen wurde. Sie können das Datum und die Uhrzeit des Ereignisses sowie die Nachrichtendetails sehen. Unterhalb des menschenlesbaren Protokolleintrags sehen Sie das OZX-Protokollkommunikationsprotokoll. Dieses Protokoll ermöglicht es Ihnen, die Kommunikation zu debuggen, falls Probleme auftreten. (Abbildung 20)
Eine Textnachricht vom Mobilfunknetz empfangen
In den oben beschriebenen Schritten haben wir eine eingehende Nachricht simuliert. Der Admin-Benutzer hat eine Nachricht gesendet, die an das C#-SMS-Beispiel weitergeleitet wurde. Der nächste Schritt besteht darin, das System mit dem Mobilfunknetz zu verbinden. Dafür haben Sie verschiedene Möglichkeiten. Sie können sich über eine Android-SMS-Gateways nutzen. (Abbildung 21)
Damit die oben beschriebene Lösung mit einem Android-Telefon funktioniert, müssen Sie lediglich eine eingehende Route in der Ozeki SMS-Routing-Tabelle erstellen. Sie müssen diese Route zwischen der Mobilfunknetzverbindung und dem C#-SMS-API-Benutzer (testuser) einrichten. Um die beste Mobilfunknetzverbindungsmethode für Ihr Projekt zu finden, lesen Sie unsere Anleitung wie Sie Ihr SMS-Gateway mit dem Mobilfunknetz verbinden. (Abbildung 22)
Zusammenfassend
Dies war eine lange und sehr detaillierte Anleitung, die Ihnen den Einstieg in die Entwicklung eines C#-SMS-Projekts erleichtern soll, das SMS-Nachrichten empfangen kann. Wenn Sie diese Lösung nutzen, werden Sie schnell feststellen, dass sie sehr gut geeignet ist, wenn Sie SMS-Nachrichten schnell über verschiedene Mobilfunknetzverbindungen empfangen möchten. Diese Lösung funktioniert unabhängig davon, ob Sie SMS über ein Android-Mobiltelefon oder über eine IP-SMS-Verbindung wie eine SMPP-Client-Verbindung empfangen möchten.
More information
- Wie man SMS aus C# sendet
- SMS in C# empfangen
- C# SMS API - Verbindung zum SMS-Versand herstellen
- C# SMS API - Von SMS-Gateway trennen
- C# SMS API - SMS-Verbindung aufrechterhalten
- C# SMS API - Textnachricht senden
- C# SMS API - SMS zur Zustellung akzeptiert
- C# SMS API - SMS nicht zur Zustellung akzeptiert
- C# SMS API - Übermittelt
- C# SMS API - Übermittlung fehlgeschlagen
- C# SMS API - Zustellungsbericht erfolgreich
- C# SMS API - Zustellungsfehlerbericht
- C# SMS API - Alphanumerische Absenderkennung
- C# SMS API - Verwendung einer Kurzwahl als Absenderkennung
- C# SMS API - Textnachrichtenklasse