Jak wysyłać SMS-y z C# przy użyciu SQL Server
Pobierz:
Sending_SMS_through_MS_SQL_Server.zip
Zobacz, jak wysyłać SMS-y poprzez wstawianie wierszy do bazy danych Microsoft SQL za pomocą aplikacji C#.NET. Ta technologia jest przeznaczona dla programistów z podstawową wiedzą w zakresie C#.NET i SQL. Pobieralny kod źródłowy pomoże Ci rozpocząć.
W kolejnych rozdziałach znajdziesz wymagane wymagania wstępne oraz szczegółowe wyjaśnienie, jak używać kodu. Pomocny diagram przepływu pracy pokazuje podstawowe połączenie między użytkownikiem aplikacji C# a telefonem odbiorcy.
Kod jest przydatny, jeśli chcesz
- dodać funkcjonalność SMS do swojej aplikacji C#.
- zintegrować automatyczne powiadomienia SMS.
- zabezpieczyć swoje produkty, dodając logowanie za pomocą SMS.
Wymagania wstępne
Wymagania systemowe są wymienione w poniższej tabeli. Proszę pobrać SMS Gateway i zainstalować oprogramowanie SMS Gateway z .NET framework 4.5 oraz Microsoft Visual Studio, aby uruchomić kod.
System operacyjny: | Windows 11, Windows 10, Windows 8, Windows 7, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2008 R2, Windows Vista |
Podstawowe wymagania programowe: |
.NET Framework 4.5
Ozeki SMS Gateway Microsoft SQL Server 2016 Express Edition lub nowsze wersje Microsoft SQL Server |
Platforma deweloperska: | Microsoft Visual Studio |
Jak to działa
Najpierw musisz zainstalować Ozeki SMS Gateway i utworzyć użytkownika bazy danych w SMS Gateway. Połącz użytkownika z bazą danych MSSQL. Wiadomości SMS do wysłania będą SELECT-owane z tabeli wiadomości wychodzących, która domyślnie nazywa się 'ozekimessageout'.
Następnie należy zainstalować środowisko C#.NET. Twoja aplikacja C# może połączyć się z bazą danych MSSQL i wstawiać wiadomości SMS do tabeli wiadomości wychodzących.
Upewnij się, że Twój Ozeki SMS Gateway jest podłączony do sieci GSM poprzez modem GSM lub dowolnego dostawcę usług SMS przez internet. Na przykład CIMD2 lub UCP/EMI są bardzo popularnymi połączeniami z dostawcami usług.
Zobacz przepływ pracy połączenia C# przez MSSQL na Rysunku 1.
Zasadniczo, Microsoft SQL Server może być dostępny zarówno z Twojej aplikacji C# jak i Ozeki SMS Gateway. Wszystkie przychodzące i wychodzące wiadomości są przechowywane na serwerze MSSQL do dalszego użycia.
Dodając odpowiedni kod do swojej aplikacji C#, możesz połączyć ją z bazą danych SQL, aby umożliwić wstawianie nowych wierszy do tabeli wiadomości wychodzących i odczytywanie wiadomości przychodzących.
Użytkownik bazy danych Ozeki SMS Gateway może odczytywać tabelę wiadomości wychodzących w celu wysyłania SMS-ów i wstawiać nowe wiersze do tabeli wiadomości przychodzących, aby inni użytkownicy mogli je odczytać. Na przykład użytkownik aplikacji C# może je odczytać.
Jak skonfigurować serwer MSSQL
Krok 1: Zainstaluj Microsoft SQL Server 2016 Express EditionKrok 2: Uruchom Microsoft SQL Server 2016 Express Edition i zaloguj się.
Krok 3: Włącz uwierzytelnianie serwera, aby zawsze wymagało pary użytkownik bazy danych i hasło. (Krótki samouczek pomocy)
Krok 4: Utwórz bazę danych i przyznaj użytkownikowi uprawnienia select, insert, update, delete. (Krótki samouczek pomocy)
Dodaj użytkownika bazy danych do Ozeki SMS Gateway
Krok 1: Uruchom Ozeki 10 Pomoc obrazkowa)Krok 2: Uruchom Ozeki SMS Gateway z pulpitu Ozeki 10.
Krok 3: Zainstaluj użytkownika bazy danych i ustaw ciąg połączenia. (Krótki samouczek pomocy)
Użyj pobranego kodu C#
Krok 1: Pobierz plik zip i rozpakuj go.Krok 2: Ustaw dane połączenia z bazą danych SQL w pliku 'DatabaseHandling.cs'. (Krótki samouczek pomocy)
Krok 3: Uruchom usługę Ozeki 10, jeśli nie jest uruchomiona. (Krótki samouczek pomocy)
Krok 4: Skompiluj i uruchom projekt w Microsoft Visual Studio
Krok 5: Pojawi się okno. Kliknij przycisk Compose message.
Wypełnij pola odbiorcy i tekstu wiadomości i kliknij 'Send'. (Krótki samouczek pomocy)
Jak działa przykładowy kod
Pobieralny kod na górze strony może wstawiać wiadomości do tabeli 'ozekimessageout'. Baza danych Ozeki SMS Gateway okresowo sprawdza 'ozekimessageout', aby znaleźć nowe wiersze wiadomości i wysłać je na telefon odbiorcy. Każdy wiersz wiadomości ma atrybut statusu. Po wysłaniu wiadomości SMS status zmieni się z 'Send' na 'Sent'.
Nie zapomnij sprawdzić, czy Twój serwer Microsoft SQL jest uruchomiony, i zmodyfikuj dane połączenia serwera w pliku 'DatabaseHandling.cs', który znajdziesz w przykładowym projekcie.
Klasy C# przykładowego kodu
MainForm.cs (Rysunek 2):
Ta klasa zawiera pierwsze okno, które się otwiera.
Jak widać na Rysunku 2, może wyświetlać zawartość dwóch tabel.
Zawartość jest odczytywana za pomocą instrukcji SELECT z 'ozekimessageout' i 'ozekimessagein'.
Zawiera również dwa przyciski 'Odśwież'
oraz przycisk 'Napisz wiadomość'. Naciśnij go, aby użyć następnej klasy, 'ComposeMessageForm.cs'.
ComposeMessageForm.cs (Rysunek 3):
To jest następna strona, gdzie możesz wypełnić niezbędne pola danych, aby utworzyć nową wiadomość.
DatabaseHandling.cs:
Tutaj możesz ustawić połączenie z bazą danych (Rysunek 4)
i odświeżyć tabele w 'MainForm.cs'.
Jak działa kod wysyłający wiadomość
W 'ComposeMessageForm.cs' możesz wypełnić dwa pola: adres odbiorcy i tekst wiadomości. Naciskając 'Wyślij', możesz uruchomić następujący kod:
ComposeMessageForm.cs... private void buttonSend_Click(object sender, EventArgs e) { CheckAndSendMessage(); } private void CheckAndSendMessage() { if (textBoxRecipient.Text == "") { MessageBox.Show("Pole odbiorcy nie może być puste!", "Nieprawidłowa wartość pola"); return; } string errorMsg = ""; DatabaseHandling.insertMessage(textBoxRecipient.Text, textBoxMessageText.Text, out errorMsg); MessageBox.Show(errorMsg, "Wynik wstawiania wiadomości"); } ...Rysunek 5 - Sprawdza, czy pole odbiorcy jest puste
Metoda CheckAndSendMessage() jest wywoływana przez 'buttonSend_Click(...)'. Metoda zaczyna od sprawdzenia pola odbiorcy i uruchamia insertMessage(...) z 'DatabaseHandling.cs', jeśli pole odbiorcy NIE jest puste (Rysunek 5). insertMessage(...) może wstawić nowy wiersz do tabeli 'ozekimessageout' (Rysunek 6) (Domyślna wartość atrybutu msgtype to SMS:TEXT). Ozeki SMS Gateway odczyta wiersze z serwera SQL, jak widać na diagramie przepływu pracy powyżej.
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 = "Wstawienie NIE powiodło się!"; } else { errorMsg = "Wstawienie powiodło się!"; } } catch (Exception e) { errorMsg = e.Message; } CloseConnection(); } ...Rysunek 6 - Wstawia wiadomość do Twojej bazy danych SQL
Możesz użyć innych typów wiadomości niż 'SMS:TEXT' (np. 'SMS:WAPPUSH', 'SMS:VCARD'), jak widać na Rysunku 7.
... sqlComm.CommandText = "insert into ozekimessageout " + "(msgtype,receiver,msg,status) " + "values ('SMS:WAPPUSH','" + receiver + "','" + messageText + "','send');"; ...Rysunek 7 - Typ wiadomości zmieniony z 'SMS:TEXT' na 'SMS:WAPPUSH'
Często zadawane pytania
Pytanie:
Czy ten przykład w C# może działać na innym komputerze niż
maszyna Ozeki SMS Gateway lub serwer MSSQL?
Odpowiedź: Tak, może. Zmodyfikuj adres IP w 'DatabaseHandling.cs' na adres IP Twojego serwera MSSQL.
Pytanie:
Czy mogę zmienić numer telefonu nadawcy?
Odpowiedź:
Tak. Proszę również wstawić numer nadawcy do wiersza wiadomości (Rysunek 8).
Działa to tylko w przypadku posiadania połączenia IP SMS.
... string SenderNumber = "+449876543"; sqlComm.CommandText = "insert into ozekimessageout " + "(msgtype,sender,receiver,msg,status) " + "values ('SMS:TEXT','" + SenderNumber + "','" + receiver + "','" + messageText + "','send');"; ...Rysunek 8 - Zmodyfikowana instrukcja INSERT INTO z dodatkowym atrybutem 'sender'
Podsumowanie
W tym artykule wyjaśniono, jak wysyłać SMS-y z C# przy użyciu SQL Servera. Oznacza to, że możesz wysłać SMS-a, wstawiając wiersz do bazy danych Microsoft SQL. Ten system wykorzystuje aplikację C#.NET. Wysyłanie SMS-a z SQL Servera oznacza, że możesz użyć języka SQL do wyszukiwania wiadomości lub zarządzania SMS-ami. Znacznie poprawi to efektywność komunikacji w Twojej organizacji i przyspieszy przepływ informacji.
Jeśli chcesz dowiedzieć się więcej o technologii oferowanej przez Ozeki, odwiedź stronę internetową Ozeki. Radzimy zacząć od C# SMS API. Więcej informacji o C# SMS API Ozeki znajdziesz w tym artykule. Następnie, jeśli chcesz wysyłać SMS-y za pomocą HTTP SMS API, odwiedź ten artykuł: HTTP SMS API.
Aby rozpocząć wysyłanie SMS-ów za pomocą API, pobierz Ozeki SMS Gateway już teraz i zacznij pracę!
More information
- API SMS C#
- Skrypt SMS C# ASP
- Jak wysyłać SMS z C# przy użyciu HTTP GET
- API SMS C# dla SQL