Jak odeslat SMS z C# pomocí SQL Serveru

Stáhnout: Sending_SMS_through_MS_SQL_Server.zip

Podívejte se, jak odesílat SMS vkládáním řádků do databáze Microsoft SQL prostřednictvím aplikace v C#.NET. Tato technologie je určena pro vývojáře se základními znalostmi v C#.NET a SQL. Ke stažení je zdrojový kód, který vám pomůže začít.

V následujících kapitolách najdete požadované předpoklady a podrobné vysvětlení, jak kód používat. Užitečný diagram pracovního postupu ukazuje základní spojení mezi uživatelem aplikace v C# a telefonem příjemce.

Kód je užitečný, pokud chcete

  • přidat funkci SMS do vaší aplikace v C#.
  • integrovat automatizovaná SMS oznámení.
  • zabezpečit své produkty přidáním SMS přihlášení.

Předpoklady

Softwarové požadavky systému jsou uvedeny v následující tabulce. Prosím, stáhněte si SMS Gateway a nainstalujte software SMS Gateway s .NET frameworkem 4.5 a Microsoft Visual Studio pro spuštění vašeho kódu.

Operační systém: Windows 11, Windows 10, Windows 8, Windows 7, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2008 R2, Windows Vista
Základní softwarové požadavky: .NET Framework 4.5
Ozeki SMS Gateway
Microsoft SQL Server 2016 Express Edition nebo novější verze Microsoft SQL Serveru
Vývojová platforma: Microsoft Visual Studio

Jak to funguje

Nejprve je třeba nainstalovat Ozeki SMS Gateway a vytvořit databázového uživatele v SMS Gateway. Připojte uživatele k vaší MSSQL databázi. SMS zprávy k odeslání budou vybírány z tabulky odchozích zpráv SQL, která se standardně nazývá 'ozekimessageout'.

Poté byste měli nainstalovat prostředí C#.NET. Vaše aplikace v C# se může připojit k vaší MSSQL databázi a vkládat SMS zprávy do tabulky odchozích zpráv.

Ujistěte se, že je váš Ozeki SMS Gateway připojen k GSM síti přes GSM modem nebo jakéhokoli poskytovatele SMS služeb přes internet. Například CIMD2 nebo UCP/EMI jsou velmi populární připojení k poskytovatelům služeb.

Viz pracovní postup připojení C# přes MSSQL na obrázku 1.

tok zpráv z mobilního telefonu do vaší aplikace v C sharp a naopak
Obrázek 1 - Tok zpráv z mobilního telefonu do vaší aplikace v C# a naopak

V podstatě lze Microsoft SQL Server dosáhnout jak z vaší aplikace v C#, tak z Ozeki SMS Gateway. Všechny příchozí a odchozí zprávy jsou uloženy na MSSQL Serveru pro další použití.

Přidáním příslušného kódu do vaší aplikace v C# ji můžete připojit k vaší SQL databázi, aby byla schopna vkládat nové řádky do tabulky odchozích zpráv a číst příchozí zprávy.

Databázový uživatel Ozeki SMS Gateway je schopen číst tabulku odchozích zpráv pro odesílání SMS zpráv a vkládat nové řádky do tabulky příchozích zpráv pro ostatní uživatele ke čtení. Například uživatel aplikace v C# je může číst.

Jak nastavit váš MSSQL Server

Krok 1: Nainstalujte Microsoft SQL Server 2016 Express Edition
Krok 2: Spusťte Microsoft SQL Server 2016 Express Edition a přihlaste se.
Krok 3: Zapněte ověřování serveru, aby vždy vyžadovalo pár uživatelského jména a hesla databáze. (Krátký návod)
Krok 4: Vytvořte databázi a udělte uživateli oprávnění select, insert, update, delete. (Krátký návod)

Přidejte databázového uživatele do Ozeki SMS Gateway

Krok 1: Spusťte Ozeki 10 Nápověda s obrázkem)
Krok 2: Spusťte Ozeki SMS Gateway z plochy Ozeki 10.
Krok 3: Nainstalujte databázového uživatele a nastavte připojovací řetězec. (Krátký návod)

Použijte stažený kód v C#

Krok 1: Stáhněte soubor zip a rozbalte jej.
Krok 2: Nastavte údaje pro připojení k SQL databázi v 'DatabaseHandling.cs'. (Krátký návod)
Krok 3: Spusťte službu Ozeki 10, pokud není spuštěna. (Krátký návod)
Krok 4: Sestavte a spusťte projekt v Microsoft Visual Studio
Krok 5: Objeví se okno. Klikněte na tlačítko Vytvořit zprávu.
Vyplňte pole příjemce a text zprávy a klikněte na 'Odeslat'. (Krátký návod)
Jak funguje ukázkový kód

Stažitelný kód na vrcholu stránky může vkládat zprávy do tabulky 'ozekimessageout'. Databázový uživatel Ozeki SMS Gateway pravidelně kontroluje 'ozekimessageout', aby našel nové řádky zpráv a odeslal je na telefon příjemce. Každý řádek zprávy má atribut stavu. Po odeslání SMS zprávy se stav změní z 'Send' na 'Sent'.

Nezapomeňte zkontrolovat, zda je váš Microsoft SQL server spuštěn, a upravte údaje o připojení k serveru v 'DatabaseHandling.cs', který najdete v ukázkovém projektu.

Třídy C# v ukázkovém kódu

MainForm.cs (Obrázek 2):
Tato třída obsahuje první okno, které se otevře. Jak můžete vidět na obrázku 2, může zobrazovat obsah dvou tabulek. Tento obsah je načten pomocí příkazu SELECT z 'ozekimessageout' a 'ozekimessagein'. Obsahuje také dvě tlačítka 'Obnovit' a tlačítko 'Vytvořit zprávu'. Stiskněte jej pro použití další třídy 'ComposeMessageForm.cs'.

gui generované z mainform cs
Obrázek 2 - GUI generované z 'MainForm.cs'

ComposeMessageForm.cs (Obrázek 3):
Toto je další stránka, kde můžete vyplnit potřebná data pro vytvoření nové zprávy.

gui generované z composemessageform cs
Obrázek 3 - GUI generované z 'ComposeMessageForm.cs'

DatabaseHandling.cs:
Zde můžete nastavit připojení k databázi (Obrázek 4) a obnovit tabulky v 'MainForm.cs'.

nastavení připojení k databázi v databasehandling cs
Obrázek 4 - Nastavení připojení k databázi v 'DatabaseHandling.cs'

Jak funguje kód pro odesílání zpráv

V 'ComposeMessageForm.cs' můžete vyplnit dvě pole s adresou příjemce a textem zprávy. Stisknutím 'Odeslat' spustíte následující kód:

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

private void CheckAndSendMessage()
{
    if (textBoxRecipient.Text == "")
    {
        MessageBox.Show("Pole příjemce nesmí být prázdné!",
                    "Neplatná hodnota pole");
        return;
    }

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

    MessageBox.Show(errorMsg, "Výsledek vložení zprávy");
}
...
Obrázek 5 - Kontroluje, zda je pole příjemce prázdné

Metoda CheckAndSendMessage() je volána pomocí 'buttonSend_Click(...)'. Metoda začíná kontrolou pole příjemce a spustí insertMessage(...) z 'DatabaseHandling.cs', pokud pole příjemce NENÍ prázdné (Obrázek 5). insertMessage(...) může vložit nový řádek do tabulky 'ozekimessageout' (Obrázek 6) (Výchozí hodnota atributu msgtype je SMS:TEXT). Ozeki SMS Gateway bude číst řádky z SQL serveru, jak můžete vidět na vývojovém diagramu výše.

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 = "Vložení bylo NEúspěšné!";
       }
       else
       {
            errorMsg = "Vložení bylo úspěšné!";
       }
    }
    catch (Exception e)
    {
        errorMsg = e.Message;
    }

    CloseConnection();
}
...
Obrázek 6 - Vloží zprávu do vaší SQL databáze

Můžete použít jiné typy zpráv než 'SMS:TEXT' (např. 'SMS:WAPPUSH', 'SMS:VCARD'), jak můžete vidět na Obrázku 7.

...
sqlComm.CommandText = "insert into ozekimessageout " +
                    "(msgtype,receiver,msg,status) " +
                    "values ('SMS:WAPPUSH','" + receiver + "','" +
                    messageText + "','send');";
...
Obrázek 7 - Typ zprávy změněn z 'SMS:TEXT' na 'SMS:WAPPUSH'

Často kladené otázky

Otázka: Může tento příklad v C# běžet na jiném počítači než na stroji Ozeki SMS Gateway nebo MSSQL serveru?
Odpověď: Ano, může. Upravte prosím IP adresu v 'DatabaseHandling.cs' na IP adresu vašeho MSSQL serveru.

Otázka: Mohu změnit telefonní číslo odesílatele?
Odpověď: Ano. Prosím vložte číslo odesílatele také do řádku zprávy (Obrázek 8).
Funguje to pouze, pokud máte IP SMS připojení.

...
string SenderNumber = "+449876543";
sqlComm.CommandText = "insert into ozekimessageout " +
                    "(msgtype,sender,receiver,msg,status) " +
                    "values ('SMS:TEXT','" + SenderNumber + "','" + receiver + "','" +
                    messageText + "','send');";
...
Obrázek 8 - Upravený příkaz INSERT INTO s dodatečným atributem 'sender'

Shrnutí

Tento článek vysvětluje, jak odesílat SMS z C# pomocí SQL Serveru. To znamená, že můžete odeslat SMS vložením řádku do databáze Microsoft SQL. Tento systém využívá aplikaci v C#.NET. Odesílání SMS z SQL Serveru znamená, že můžete použít SQL jazyk k vyhledávání zpráv nebo správě SMS zpráv. To výrazně zlepší efektivitu komunikace ve vaší organizaci a urychlí tok informací.

Pokud se chcete dozvědět více o technologiích, které Ozeki nabízí, navštivte webové stránky Ozeki. Doporučujeme začít s C# SMS API. Více se dozvíte o C# SMS API od Ozeki v tomto článku. Dále, pokud chcete odesílat SMS pomocí HTTP SMS API, navštivte tento článek: HTTP SMS API.

Chcete-li začít odesílat SMS zprávy pomocí API, stáhněte si Ozeki SMS Gateway hned a pusťte se do práce!

More information