Wie man SMS aus C# mit SQL Server versendet

Download: Sending_SMS_through_MS_SQL_Server.zip

Erfahren Sie, wie Sie SMS versenden, indem Sie Zeilen in eine Microsoft SQL-Datenbank über eine C#.NET-Anwendung einfügen. Diese Technologie richtet sich an Entwickler mit grundlegenden Kenntnissen in C#.NET und SQL. Der herunterladbare Quellcode hilft Ihnen beim Einstieg.

In den folgenden Kapiteln finden Sie die erforderlichen Voraussetzungen und eine detaillierte Erklärung zur Verwendung des Codes. Ein hilfreiches Workflow-Diagramm zeigt Ihnen die grundlegende Verbindung zwischen dem Benutzer der C#-Anwendung und dem Empfängertelefon.

Der Code ist nützlich für diejenigen, die

  • SMS-Funktionalität in Ihre C#-Anwendung integrieren möchten.
  • automatisierte SMS-Benachrichtigungen einbinden möchten.
  • Ihre Produkte durch SMS-Login absichern möchten.

Voraussetzungen

Die Softwareanforderungen des Systems sind in der folgenden Tabelle aufgeführt. Bitte laden Sie das SMS Gateway herunter und installieren Sie die SMS Gateway-Software mit .NET Framework 4.5 und Microsoft Visual Studio, um Ihren Code auszuführen.

Betriebssystem: Windows 11, Windows 10, Windows 8, Windows 7, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2008 R2, Windows Vista
Grundlegende Softwareanforderungen: .NET Framework 4.5
Ozeki SMS Gateway
Microsoft SQL Server 2016 Express Edition oder neuere Microsoft SQL Server-Versionen
Entwicklungsplattform: Microsoft Visual Studio

Wie funktioniert es

Zuerst müssen Sie Ozeki SMS Gateway installieren und einen Datenbankbenutzer im SMS Gateway erstellen. Verbinden Sie den Benutzer mit Ihrer MSSQL-Datenbank. Die zu sendenden SMS-Nachrichten werden aus der ausgehenden Nachrichten-SQL-Tabelle ausgewählt, die standardmäßig 'ozekimessageout' heißt.

Dann sollten Sie eine C#.NET-Umgebung installieren. Ihre C#-Anwendung kann sich mit Ihrer MSSQL-Datenbank verbinden und SMS-Nachrichten in die ausgehende Nachrichtentabelle einfügen.

Stellen Sie sicher, dass Ihr Ozeki SMS Gateway über ein GSM-Modem oder einen IP-SMS-Dienstanbieter über das Internet mit dem GSM-Netzwerk verbunden ist. Zum Beispiel sind CIMD2 oder UCP/EMI sehr beliebte Dienstanbieterverbindungen.

Siehe den Workflow der C#-über-MSSQL-Verbindung in Abbildung 1.

Nachrichtenfluss von einem Handy zu Ihrer C#-Anwendung und umgekehrt
Abbildung 1 - Nachrichtenfluss von einem Handy zu Ihrer C#-Anwendung und umgekehrt

Grundsätzlich kann der Microsoft SQL Server sowohl von Ihrer C#-Anwendung als auch vom Ozeki SMS Gateway erreicht werden. Alle eingehenden und ausgehenden Nachrichten werden auf dem MSSQL-Server für die weitere Verwendung gespeichert.

Durch Hinzufügen der entsprechenden Codes zu Ihrer C#-Anwendung können Sie diese mit Ihrer SQL-Datenbank verbinden, um neue Zeilen in die ausgehende Nachrichtentabelle einzufügen und eingehende Nachrichten zu lesen.

Der Datenbankbenutzer von Ozeki SMS Gateway kann die ausgehende Nachrichtentabelle lesen, um SMS-Nachrichten zu versenden, und neue Zeilen in die eingehende Nachrichtentabelle einfügen, die von anderen Benutzern gelesen werden können. Zum Beispiel kann der C#- Anwendungsbenutzer sie lesen.

Wie Sie Ihren MSSQL-Server einrichten

Schritt 1: Installieren Sie Microsoft SQL Server 2016 Express Edition
Schritt 2: Starten Sie Microsoft SQL Server 2016 Express Edition und melden Sie sich an.
Schritt 3: Aktivieren Sie die Serverauthentifizierung, sodass immer ein Datenbankbenutzer und ein Passwortpaar erforderlich sind. (Kurze Hilfeanleitung)
Schritt 4: Erstellen Sie eine Datenbank und erteilen Sie einem Benutzer Berechtigungen zum Auswählen, Einfügen, Aktualisieren und Löschen. (Kurze Hilfeanleitung)

Fügen Sie einen Datenbankbenutzer zum Ozeki SMS Gateway hinzu

Schritt 1: Starten Sie die Ozeki 10 Bildhilfe)
Schritt 2: Starten Sie das Ozeki SMS Gateway vom Ozeki 10-Desktop.
Schritt 3: Installieren Sie einen Datenbankbenutzer und setzen Sie die Verbindungszeichenfolge. (Kurze Hilfeanleitung)

Verwenden Sie den heruntergeladenen C#-Code

Schritt 1: Laden Sie die Zip-Datei herunter und entpacken Sie sie.
Schritt 2: Setzen Sie die SQL-Datenbankverbindungsdaten in 'DatabaseHandling.cs'. (Kurze Hilfeanleitung)
Schritt 3: Starten Sie den Ozeki 10-Dienst, falls er nicht läuft. (Kurze Hilfeanleitung)
Schritt 4: Erstellen und führen Sie das Projekt in Microsoft Visual Studio aus.
Schritt 5: Ein Fenster wird geöffnet. Klicken Sie auf die Schaltfläche Nachricht verfassen.
Füllen Sie die Felder für den Empfänger und den Nachrichtentext aus und klicken Sie auf 'Senden'. (Kurze Hilfeanleitung)
Wie funktioniert der Beispielcode

Der herunterladbare Code auf der Seitenübersicht kann Nachrichten in die Tabelle 'ozekimessageout' einfügen. Der Datenbankbenutzer des Ozeki SMS Gateways überprüft regelmäßig 'ozekimessageout', um neue Nachrichtenzeilen zu finden und sie an das Telefon des Empfängers zu senden. Jede Nachrichtenzeile hat ein Statusattribut. Nach dem Versenden der SMS wird der Status von 'Send' zu 'Sent' geändert.

Vergessen Sie nicht zu überprüfen, ob Ihr Microsoft SQL-Server aktiv ist, und ändern Sie die Serververbindungsdetails in 'DatabaseHandling.cs', die Sie im Beispielprojekt finden.

C#-Klassen des Beispielcodes

MainForm.cs (Abbildung 2):
Diese Klasse enthält das erste Fenster, das geöffnet wird. Wie in Abbildung 2 zu sehen ist, kann es den Inhalt von zwei Tabellen anzeigen. Dieser Inhalt wird durch eine SELECT-Anweisung aus 'ozekimessageout' und 'ozekimessagein' gelesen. Es enthält auch zwei 'Aktualisieren'-Schaltflächen und eine 'Nachricht verfassen'-Schaltfläche. Drücken Sie diese, um die nächste Klasse 'ComposeMessageForm.cs' zu verwenden.

die GUI generiert aus mainform cs
Abbildung 2 - Die GUI generiert aus 'MainForm.cs'

ComposeMessageForm.cs (Abbildung 3):
Dies ist die nächste Seite, auf der Sie die erforderlichen Datenfelder ausfüllen können, um eine neue Nachricht zu erstellen.

die GUI generiert aus composemessageform cs
Abbildung 3 - Die GUI generiert aus 'ComposeMessageForm.cs'

DatabaseHandling.cs:
Hier können Sie die Datenbankverbindung einstellen (Abbildung 4) und die Tabellen von 'MainForm.cs' aktualisieren.

Datenbankverbindungseinstellungen in databasehandling cs
Abbildung 4 - Datenbankverbindungseinstellungen in 'DatabaseHandling.cs'

Wie funktioniert der Nachrichtenversandcode

In 'ComposeMessageForm.cs' können Sie die beiden Felder mit der Empfängeradresse und dem Nachrichtentext ausfüllen. Durch Drücken von 'Senden' können Sie den folgenden Code starten:

ComposeMessageForm.cs
...
private void buttonSend_Click(object sender, EventArgs e)
{
    CheckAndSendMessage();
}

private void CheckAndSendMessage()
{
    if (textBoxRecipient.Text == "")
    {
        MessageBox.Show("Das Empfängerfeld darf nicht leer sein!",
                    "Ungültiger Feldwert");
        return;
    }

    string errorMsg = "";
    DatabaseHandling.insertMessage(textBoxRecipient.Text,
                textBoxMessageText.Text, out errorMsg);

    MessageBox.Show(errorMsg, "Ergebnis der Nachrichteneinfügung");
}
...
Abbildung 5 - Überprüft, ob das Empfängerfeld leer ist

Die Methode CheckAndSendMessage() wird von 'buttonSend_Click(...)' aufgerufen. Die Methode beginnt mit der Überprüfung des Empfängerfelds und führt insertMessage(...) aus 'DatabaseHandling.cs' aus, wenn das Empfängerfeld NICHT leer ist (Abbildung 5). insertMessage(...) kann eine neue Zeile in die Tabelle 'ozekimessageout' einfügen (Abbildung 6) (Der Standardwert des msgtype-Attributs ist SMS:TEXT). Ozeki SMS Gateway liest die Zeilen vom SQL-Server, wie im oben gezeigten Workflow-Diagramm zu sehen ist.

DatabaseHandling.cs
...
public static void insertMessage(string receiver, string messageText,
            out string errorMsg)
{
    Connect(out errorMsg);
    if (errorMsg != "")
       return;

    try
    {
       SqlCommand sqlComm = sqlConn.CreateCommand();
       sqlComm.CommandText = "insert into ozekimessageout " +
                    "(msgtype,receiver,msg,status) " +
                    "values ('SMS:TEXT','" + receiver + "','" +
                    messageText + "','send');";
       if (sqlComm.ExecuteNonQuery() == 0)
       {
            errorMsg = "Einfügung war NICHT erfolgreich!";
       }
       else
       {
            errorMsg = "Einfügung war erfolgreich!";
       }
    }
    catch (Exception e)
    {
        errorMsg = e.Message;
    }

    CloseConnection();
}
...
Abbildung 6 - Fügt Nachricht in Ihre SQL-Datenbank ein

Sie können andere Nachrichtentypen als 'SMS:TEXT' verwenden (z.B. 'SMS:WAPPUSH', 'SMS:VCARD'), wie in Abbildung 7 zu sehen ist.

...
sqlComm.CommandText = "insert into ozekimessageout " +
                    "(msgtype,receiver,msg,status) " +
                    "values ('SMS:WAPPUSH','" + receiver + "','" +
                    messageText + "','send');";
...
Abbildung 7 - Nachrichtentyp von 'SMS:TEXT' zu 'SMS:WAPPUSH' geändert

Häufig gestellte Fragen

Frage: Kann dieses C#-Beispiel auf einem anderen Computer als dem des Ozeki SMS Gateways oder des MSSQL-Servers ausgeführt werden?
Antwort: Ja, das ist möglich. Bitte ändern Sie die IP-Adresse in 'DatabaseHandling.cs' auf die IP-Adresse Ihres MSSQL-Servers.

Frage: Kann ich die Absendertelefonnummer ändern?
Antwort: Ja. Bitte fügen Sie die Absendernummer ebenfalls in die Nachrichtenzeile ein (Abbildung 8).
Dies funktioniert nur, wenn Sie eine IP-SMS-Verbindung haben.

...
string SenderNumber = "+449876543";
sqlComm.CommandText = "insert into ozekimessageout " +
                    "(msgtype,sender,receiver,msg,status) " +
                    "values ('SMS:TEXT','" + SenderNumber + "','" + receiver + "','" +
                    messageText + "','send');";
...
Abbildung 8 - Modifizierte INSERT INTO-Anweisung mit einem zusätzlichen 'sender'-Attribut

Zusammenfassung

Dieser Artikel erklärte, wie man SMS aus C# mit einem SQL Server versendet. Das bedeutet, dass Sie eine SMS versenden können, indem Sie eine Zeile in eine Microsoft SQL-Datenbank einfügen. Dieses System verwendet eine C#.NET-Anwendung. Das Versenden einer SMS von einem SQL Server aus bedeutet, dass Sie die SQL-Sprache verwenden können, um nach einer Nachricht zu suchen oder SMS-Nachrichten zu verwalten. Es wird die Kommunikationseffizienz innerhalb Ihrer Organisation erheblich verbessern und den Informationsfluss beschleunigen.

Wenn Sie mehr über die Technologie erfahren möchten, die Ozeki bereitstellt, besuchen Sie die Ozeki-Website. Wir empfehlen Ihnen, mit der C# SMS API zu beginnen. Sie erfahren mehr über die Ozeki C# SMS API in diesem Artikel. Als Nächstes, wenn Sie die SMS über die HTTP SMS API versenden möchten, besuchen Sie diesen Artikel: HTTP SMS API.

Um mit dem Versenden von SMS-Nachrichten über APIs zu beginnen, laden Sie das Ozeki SMS Gateway jetzt herunter und legen Sie los!

More information