C# SMS API s kompletným zdrojovým kódom
Ak hľadáte výkonný nástroj pre vývojárov v C#.Net, ktorý umožňuje pridanie možnosti odosielania a prijímania SMS do aplikácií v C#.Net, C# SMS API poskytované Ozeki SMS Gateway je tou najlepšou voľbou. Toto je najlepšie C# SMS API v roku 2025. Je výnimočné, pretože je veľmi efektívne z hľadiska zdrojov a ponúka informácie o odoslaných správach vo forme správ o odoslaní a doručení oveľa rýchlejšie ako iné SMS API. Toto C# SMS API vám tiež umožňuje naplánovať odoslanie SMS na neskoršie doručenie a môžete ho použiť na odosielanie aj prijímanie SMS z mobilných telefónov bez oneskorení. Prečítajte si tento článok, aby ste sa dozvedeli viac o tomto úžasnom C# SMS riešení a zistili, ako ho môžete využiť vo svojom prostredí.
Čo je C# SMS API?Ozeki C# SMS API je softvérové rozhranie poskytované Ozeki SMS Gateway, ktoré umožňuje odosielať a prijímať SMS z kódu v C#.Net. Toto rozhranie môže byť použité s knižnicou klienta C# SMS API z viacerých počítačov súčasne. (Obrázok 1) Knižnicu klienta C# SMS API si môžete stiahnuť z tejto webovej stránky.
Knižnicu klienta C# SMS (so zdrojovým kódom) si môžete stiahnuť z nasledujúceho odkazu. ZIP súbor obsahuje projekt pre Visual Studio s kompletným zdrojovým kódom. Tento kód alebo jeho deriváty môžete voľne upravovať, používať a redistribuovať.
Stiahnuť: OzekiConsole.zip (51 Kb)
URL: https://ozeki-sms-gateway.com/attachments/5755/OzekiConsole.zip
S Ozeki C# SMS API môžete odosielať a prijímať SMS správy oveľa efektívnejšie ako pri použití tradičných HTTP alebo REST SMP API riešení. Môžete to urobiť, pretože Ozeki C# SMS API vytvára a udržiava trvalé TCP/IP spojenie so SMS bránou a komunikuje cez vysoko optimalizovaný SMS protokol nazývaný OZX. Tento spôsob komunikácie vyžaduje menej zdrojov z hľadiska CPU, pamäte a sieťovej šírky pásma ako iné SMS protokoly. Napríklad odoslanie SMS správy v požiadavke HTTP REST API vyžaduje aspoň 10x viac dát ako požiadavka OZX.
Najdôležitejšou výhodou je trvalé TCP/IP spojenie. Vďaka tomuto trvalému spojeniu bude vaša C# SMS aplikácia okamžite dostávať správy o odoslaní a doručení vo forme C# udalostí. Budete tiež prijímať prichádzajúce SMS správy bez akéhokoľvek oneskorenia. Bez takéhoto spojenia by ste museli buď opakovane kontrolovať SMS bránu, aby ste získali správy o doručení alebo stiahli prichádzajúce SMS, alebo by ste si museli nastaviť TCP/IP poslucháč alebo webovú službu a otvoriť port firewallu pre prichádzajúce správy.
Toto TCP/IP spojenie môže byť šifrované pomocou SSL/TLS a môžete jednoducho pridať overovanie certifikátov klienta a servera, aby bolo toto C# SMS API spojenie extrémne bezpečné.
Ako používať C# SMS API:
- Stiahnite si Ozeki SMS Gateway
- Nainštalujte testovacie SMS pripojenie
- Vytvorte používateľa OZX
- Vytvorte používateľské meno a heslo
- Povoľte zaznamenávanie komunikácie
- Otvorte svoj C# SMS projekt v Visual Studio
- Upravte C# kód s používateľským menom a heslom
- Odošlite testovaciu SMS z C#
- Skontrolujte záznamy v SMS bráne
- Simulujte prichádzajúcu SMS s testovacím pripojením
- Vykonajte živý test so svojím Android telefónom
Ak chcete rýchlo získať predstavu o tom, ako nastaviť svoju SMS bránu na prijatie spojení C# SMS API a ako odoslať svoju prvú SMS z vašej C# aplikácie, pozrite si nasledujúce video. Toto video je dlhé len 2 minúty a 21 sekúnd a stojí za to. Video ukazuje, ako možno v SMS bráne vytvoriť používateľa OZX na prijatie klientov C# SMS API a ako môžete spustiť a používať stiahnutú knižnicu klienta C# SMS API v Visual Studio. Záverečná časť vám ukáže, ako môžete odoslať testovaciu SMS.
Prečo je Ozeki C# SMS API lepšie?
Ozeki C# SMS API je skvelé, pretože množstvo dát potrebných na odoslanie SMS je menšie a kódovanie a dekódovanie Protocol Data Unit (PDU) má výrazne menšiu záťaž CPU. Ak ho použijete, vaše riešenie bude spotrebovávať menej zdrojov vo všetkých troch hlavných oblastiach: pamäť, CPU a sieťová šírka pásma. V dôsledku toho budú vaše aplikácie fungovať rýchlejšie a budú citlivejšie.
Ako môžem použiť C# SMS API?Ozeki C# SMS API je súbor tried v C#, ktoré vám umožňujú odosielať a prijímať SMS správy. Môžete ho použiť otvorením stiahnutého projektu v Visual Studio. Keď otvoríte projekt, uvidíte, že celý kód je napísaný v C#.Net. Odosielanie správ sa vykonáva pomocou volaní metód v C# a prichádzajúce správy prichádzajú vo forme udalostí v C#. Vaša SMS aplikácia, ktorú postavíte na základe SMS API, bude môcť odosielať SMS správy priamo do mobilnej siete pomocou Android mobilného telefónu alebo pomocou počítača s IP SMS pripojením. Pripojenie k mobilnej sieti bude poskytované Ozeki SMS bránou, ktorú si musíte Linux počítač. (Obrázok 2)
Koľko stojí C# SMS API?
API je knižnica, ktorá je poskytovaná bezplatne s licenciou MIT. Môžete ju voľne upravovať a distribuovať podľa vlastného uváženia. Keď si stiahnete API, balík obsahuje príklad konzolovej aplikácie a úplný zdrojový kód Ozeki.Libs.OZX dll.
Jediný poplatok, ktorý musíte zaplatiť, je licenčný poplatok za softvér Ozeki SMS Gateway. Jediná SMS brána môže byť použitá na obsluhu niekoľkých stoviek C# SMS klientov cez sieť. Môžete nainštalovať SMS bránu na viacero počítačov, aby ste zvýšili kapacitu alebo využili ponuky SMS miestnych sietí.
Pokiaľ ide o náklady na SMS, ak posielate textové správy cez mobilný telefón pripojený k vášmu PC, náklady závisia od taríf SMS v SIM karte vášho telefónu. Vo väčšine krajín môžete posielať SMS správy zadarmo, ak zvolíte túto možnosť. Existuje však obmedzenie: jeden mobilný telefón nemôže poslať viac ako 12 000 SMS za deň. Túto kapacitu môžete zvýšiť len pripojením viacerých mobilných telefónov k vášmu počítaču. Keď posielate SMS cez mobilný telefón (Obrázok 2), musíte nainštalovať softvér Ozeki Android SMS brány na svoj mobil a pripojiť sa k nemu cez Wi-fi.
Ak nainštalujete Ozeki SMS Gateway na svoj počítač s Windows alebo Linux, môžete posielať SMS bezdrôtovo pomocou GSM modemu alebo GSM modemu poolu pripojeného k PC. V týchto prípadoch platia rovnaké bezplatné SMS tarify, pretože GSM modemy a GSM modemy poolu fungujú bezdrôtovo s SIM kartami.
Ak potrebujete záložné bezdrôtové pripojenie.
Ako sa pripojím k SMS bráne?
Keď vyvíjate svoju C# SMS aplikáciu, pravdepodobne budete používať svoj notebook. Na notebooku bude nainštalovaný Visual Studio. Tento notebook sa pripojí k vašej kancelárskej lokálnej sieti (LAN) cez Wi-fi alebo Ethernetové pripojenie. Váš Android mobil alebo váš systém Windows SMS Gateway (Obrázok 3) sa tiež pripojí k kancelárskej LAN. Keď sa pripájate k SMS bráne, použijete LAN IP adresu počítača SMS brány.
Ak chcete pripojiť svoju C# aplikáciu k SMS bráne, budete potrebovať poznať IP adresu a číslo portu SMS brány, ako aj používateľské meno a heslo. IP adresa SMS brány bude jej LAN IP adresa. Keďže väčšinu času bude softvér SMS brány nainštalovaný na inom počítači ako váš vývojový notebook, táto IP adresa bude iná ako IP adresa vášho notebooku. Číslo portu je jednoduché. Zvyčajne je to predvolené číslo portu, ktoré je 9580. Ak chcete získať používateľské meno a heslo, musíte vytvoriť používateľa OZX (Obrázok 4). Keď vytvárate používateľa OZX, môžete zadať ľubovoľné používateľské meno alebo heslo.
Keď zistíte IP adresu, číslo portu a vytvoríte používateľské meno a heslo, musíte tieto údaje zadať do metódy connect vašej C# SMS aplikácie.
Ak nechcete používať dva počítače, môžete nainštalovať SMS bránu na svoj notebook (rovnaký počítač, na ktorom vyvíjate svoju C# aplikáciu). V tomto prípade by ste v metóde connect zadali "127.0.0.1" ako IP adresu a port "9580". (Áno, môžete tiež použiť IPv6 adresy alebo hostname, ako napríklad 'localhost")
Výhody používania vlastnej SMS brány
Bezplatné testovanie: Je veľmi výhodné prevádzkovať vlastnú SMS bránu, pretože môžete testovať svoju SMS aplikáciu zadarmo. Môžete simulovať prichádzajúce SMS správy, môžete posielať testovacie správy na testovacie pripojenie SMS brány a môžete simulovať správy o doručení SMS, ktoré indikujú úspešné alebo neúspešné doručenie. Je dobré prečítať si príručku SMPP simulátora, aby ste získali viac informácií o testovaní.
Neobmedzené testovanie výkonu: Keď vyviniete svoje SMS riešenie v C#, je pravdepodobné, že budete chcieť vykonať testovanie výkonu. S Ozeki SMS bránou je veľmi jednoduché otestovať váš systém s veľkým objemom SMS správ. Vo väčšine prípadov budete posielať len niekoľko tisíc SMS, ale ak si to klient vyžiada, môžete vykonať test aj s niekoľkými miliónmi správ. Pozrite si výsledky testovania výkonu SMS, ktoré sme vykonali s Ozeki SMS bránou s 1 000 000 SMS.
Jednoduché prepínanie poskytovateľov: Ak vyviniete svoj C# kód, ktorý funguje s Ozeki SMS bránou, nemusíte sa obávať, že budete uzamknutí v jednej SMS sieti alebo u jedného poskytovateľa SMS služieb. Môžete použiť rovnaký C# kód a jednoducho prepnúť na iného poskytovateľa SMS služieb, ak získate lepšiu ponuku, konfiguráciou pripojenia nového poskytovateľa v SMS bráne.
Čo je OZX?
OZX je skratka pre OZeki eXchange. Ide o vysoko optimalizovaný SMS protokol používaný na komunikáciu medzi vašou C# SMS aplikáciou a Ozeki SMS Gateway. Je to protokol založený na TCP/IP, ktorý je výrazne efektívnejší ako tradičné SMS protokoly, ako sú C# HTTP SMS API protokoly, C# REST SMS API protokoly alebo SMPP SMS protokol. Efektívnosť vychádza z dvoch hlavných faktov: neprenášajú sa žiadne nepotrebné údaje (pozor, že v protokoloch http aj smpp je veľký nadbytok údajov), a vďaka štruktúre protokolu PDU je možné jednoduchšie a efektívnejšie spracovanie protokolu.
Čo obsahuje zip súbor C# SMS API?
Zip súbor obsahuje dva projekty (ako na obrázku 5): konzolovú aplikáciu, ktorá je veľmi ľahko zrozumiteľným kódom, ktorý vám ukáže, ako používať C# SMS API, a obsahuje zdrojový kód samotného C# SMS API.
Obsah balíka C# SMS API:
- Príklad kódu (úplný zdrojový kód)
- Knižnica klienta Ozeki (úplný zdrojový kód)
Ako otvoriť riešenie .sln C# SMS API?
Na otvorenie Ozeki SMS API musíte po rozbalení balíka OzekiConsole.zip nájsť súbor OzekiConsole.sln a otvoriť ho v prostredí Visual Studio. (Obrázok 6) Môžete naň dvakrát kliknúť, alebo ho nájsť v prostredí Visual Studio.
Po otvorení .sln uvidíte v riešení dva projekty. Projekt OzekiConsole obsahuje príklad kódu, ktorý vám ukáže, ako môžete použiť knižnicu klienta C# SMS API na pripojenie k SMS Gateway. (Obrázok 7) Druhý projekt je Ozeki.Libs.OZX dll projekt. Tento projekt obsahuje úplný zdrojový kód knižnice klienta C# SMS API.
Ako sa prihlásiť do SMS gateway pomocou C# SMS API
Na použitie C# SMS API musíte vytvoriť používateľské meno a heslo vo vašej SMS gateway. Ak ste nainštalovali svoju SMS gateway na svojom Android telefóne, musíte sa prihlásiť do telefónu pomocou webového prehliadača. Ak ste nainštalovali svoju SMS gateway na Windows alebo Linux, jednoducho sa k nej pripojte pomocou prehliadača. Ak ste ešte nenainštalovali svoju SMS gateway, nastavte ju teraz pomocou jedného z nasledujúcich návodov: Ako nastaviť moju SMS Gateway na Windows, Ako nastaviť moju SMS gateway na Linux. (Obrázok 8)
Ako poslať SMS z C#
Na odoslanie SMS z C# musíte pridať ozekisms.dll ako referenciu do vášho riešenia v prostredí Visual Studio. Môžete sa rozhodnúť pridať binárny súbor dll alebo môžete pridať projekt obsahujúci zdrojový kód. Ak pridáte binárny súbor dll, váš projekt sa skompiluje rýchlejšie, ak pridáte zdrojový kód, budete mať lepšie možnosti ladenia. (Obrázok 9)
Ako poslať SMS z C#:
- Stiahnite si knižnicu Ozeki C# SMS (zip súbor)
- Rozbaľte zip súbor
- Otvorte Microsoft Visual Studio
- Vytvorte novú konzolovú aplikáciu
- V Solution Exploreri kliknite na "Pridať..."
- Vyberte "Existujúci projekt"
- Nájdite súbor OzekiSMSLibrary.csproj
- Kliknite na Otvoriť
- Pridajte menný priestor "Ozeki" do vašej konzolovej aplikácie
- Skopírujte a vložte príklad
- Pošlite svoju prvú SMS pomocou funkcie SendMessage
Ako prijímať SMS v C#
Na prijímanie SMS v C# musíte nastaviť svoj projekt rovnakým spôsobom, ako by ste ho nastavili pre odosielanie SMS správ. V skratke, stiahnite si ozekisms.dll ako binárny súbor alebo ako zdrojový kód a pridajte ho do svojho projektu ako referenčnú knižnicu. Potom môžete vytvoriť inštanciu triedy C# a môžete sa prihlásiť na odber udalosti, ktorá sa volá pri prijatí SMS. (Obrázok 10)
Ako prijímať SMS v C#:
- Stiahnite si knižnicu Ozeki C# SMS (zip súbor)
- Otvorte Microsoft Visual Studio
- Vytvorte novú konzolovú aplikáciu alebo otvorte jeden z vašich existujúcich projektov
- Pridajte knižnicu C# SMS do vášho riešenia C#
- Pridajte menný priestor "Ozeki" do vašej triedy
- Vytvorte inštanciu triedy správy
- Prihláste sa na udalosť OnMessageReceived
- Napíšte kód obsluhy udalosti
- Nastavte bod prerušenia v obsluhe udalosti
- Pošlite testovaciu správu
- Čakajte, kým SMS dosiahne bod prerušenia
Pochopte zdrojový kód C# SMS API
//********************************************************************* // Ozeki C# SMS API - v1.0.0 // Dokumentácia: https://ozeki-sms-gateway.com/p_5755-c-sharp-sms-api.html //********************************************************************* using System; using OZX; namespace OzekiConsoleClient { class Program { static OzxClient Client; //************************************************************* // Hlavná metóda //************************************************************* static void Main(string[] args) { createClient(); printWelcome(); string command = null; string parameters; while (command != "exit") { if (!_promptAvailable) printPrompt(); readCommand(out command, out parameters); _promptAvailable = false; dispatchCommand(command, parameters); } } //************************************************************* // Načítanie ďalšieho príkazu //************************************************************* static bool _promptAvailable; static void printPrompt() { Console.Write("> "); _promptAvailable = true; } static void readCommand(out string command, out string parameters) { command = Console.ReadLine(); parameters = null; int paramSep = command.IndexOf(' '); if (paramSep > -1) { parameters = command.Substring(paramSep + 1); command = command.Substring(0, paramSep); } } static void dispatchCommand(string command, string parameters) { switch (command) { case "help": printHelp(); break; case "exit": Console.WriteLine("Ďakujeme za použitie Ozeki klienta!"); break; case "connect": connect(parameters); break; case "disconnect": disconnect(); break; case "send": send(parameters); break; } } //************************************************************* // Príkazy / Uvítanie //************************************************************* static void printWelcome() { Console.WriteLine("**********************************"); Console.WriteLine("* Vitajte v Ozeki klientovi v1.0.0 *"); Console.WriteLine("**********************************"); Console.WriteLine("Pre dostupné príkazy napíšte 'help'"); } //************************************************************* // Príkazy / Pomoc //************************************************************* static void printHelp() { Console.WriteLine("**********************"); Console.WriteLine("* Dostupné príkazy *"); Console.WriteLine("**********************"); Console.WriteLine("help"); Console.WriteLine("connect [host:port] [username] [password]"); Console.WriteLine("disconnect"); Console.WriteLine("send [príjemca] [správa]"); Console.WriteLine("exit"); } //************************************************************* // Príkazy / Pripojenie //************************************************************* static void connect(string parameters) { if (!parseConnectParameters(parameters, out string host, out int port, out string username, out string password, out string errormessage)) { Console.WriteLine("Chyba. "+errormessage); Console.WriteLine("Syntax: connect [host:port] [username] [password]"); Console.WriteLine("Príklad: connect 127.0.0.1:9580 testuser testpass"); } Console.WriteLine("Pripájanie sa k "+parameters+"..."); Client.Connect(host, port, username, password); } static bool parseConnectParameters(string parameters, out string host, out int port, out string username, out string password, out string errormessage) { string[] parts = parameters.Split(' '); if (parts.Length < 3) { errormessage = "Connect očakáva 3 parametre."; username = null; password = null; host = null; port = 0; return false; } string hostandport = parts[0]; username = parts[1]; password = parts[2]; string[] hostandportparts = hostandport.Split(':'); if (hostandportparts.Length < 2) { errormessage = "Neplatný host a port."; host = null; port = 0; return false; } host = hostandportparts[0]; string portstring = hostandportparts[1]; if (!int.TryParse(portstring, out port)) { errormessage = "Neplatné číslo portu."; port = 0; return false; } errormessage = null; return true; } //************************************************************* // Príkazy / Odpojenie //************************************************************* static void disconnect() { Client.Disconnect(); } //************************************************************* // Príkazy / Odoslanie //************************************************************* static void send(string parameters) { string[] parts = parameters.Split(new char[] { ' ' },2); if (parts.Length < 2) { Console.WriteLine("Chyba. Send očakáva 2 parametre."); Console.WriteLine("Syntax: send [príjemca] [správa]"); Console.WriteLine("Príklad: send +441234567 Ahoj svet"); return; } string recipient = parts[0]; string message = parts[1]; var msg = new OzxMessage(); msg.ToAddress = recipient; msg.Text = message; Console.WriteLine("Odosielanie správy. ID: "+msg.ID); Client.Send(msg); } //************************************************************* // Vytvorenie klienta //************************************************************* static void createClient() { Client = new OzxClient(); Client.AutoReconnect = true; Client.OnMessageReceived += Client_OnMessageReceived; Client.OnMessageAcceptedForDelivery += Client_OnMessageAcceptedForDelivery; Client.OnMessageNotAcceptedForDelivery += Client_OnMessageNotAcceptedForDelivery; Client.OnMessageSubmitSuccess += Client_OnMessageSubmitSuccess; Client.OnMessageSubmitFailed += Client_OnMessageSubmitFailed; Client.OnMessageDeliverySuccess += Client_OnMessageDeliverySuccess; Client.OnMessageDeliveryFailed += Client_OnMessageDeliveryFailed; Client.OnMessageViewed += Client_OnMessageViewed; Client.OnConnected += Client_OnConnected; Client.OnDisconnected += Client_OnDisconnected; } //************************************************************* // Udalosti správy //************************************************************* static void Client_OnConnected(object sender, EventArgs e) { Console.WriteLine("Úspešne pripojené."); printPrompt(); } static void Client_OnDisconnected(object sender, OzxArgs< string > e) { Console.WriteLine("Spojenie ukončené. Dôvod: " + e.Item.ToString()); printPrompt(); } static void Client_OnMessageReceived(object sender, OzxArgs< IOzxMessage > e) { Console.WriteLine("Správa prijatá: " + e.Item.ToString()); printPrompt(); } static void Client_OnMessageAcceptedForDelivery(object sender, OzxArgs< string > e) { Console.WriteLine("Správa prijatá na doručenie. ID: " + e.Item.ToString()); printPrompt(); } static void Client_OnMessageNotAcceptedForDelivery(object sender, OzxArgs< string, string > e) { Console.WriteLine("Správa zamietnutá. ID: " + e.Item1.ToString()+" Dôvod: "+e.Item2); printPrompt(); } static void Client_OnMessageSubmitSuccess(object sender, OzxArgs< string, DateTime > e) { Console.WriteLine("Správa odoslaná. ID: "+e.Item1+" Dátum: "+e.Item2); printPrompt(); } static void Client_OnMessageSubmitFailed(object sender, OzxArgs< string, DateTime, string > e) { Console.WriteLine("Odoslanie správy zlyhalo. ID: " + e.Item1 + " Dátum: " + e.Item2+" Dôvod: "+e.Item3); printPrompt(); } static void Client_OnMessageDeliverySuccess(object sender, OzxArgs< string, DateTime > e) { Console.WriteLine("Správa doručená. ID: " + e.Item1 + " Dátum: " + e.Item2); printPrompt(); } static void Client_OnMessageDeliveryFailed(object sender, OzxArgs< string, DateTime, string > e) { Console.WriteLine("Doručenie správy zlyhalo. ID: " + e.Item1 + " Dátum: " + e.Item2 + " Dôvod: " + e.Item3); printPrompt(); } static void Client_OnMessageViewed(object sender, OzxArgs< string, DateTime > e) { Console.WriteLine("Správa zobrazená. ID: " + e.Item1 + " Dátum: " + e.Item2); printPrompt(); } } }
Čo robiť, ak sa nemôžem pripojiť?
Ak sa vaša SMS aplikácia nemôže pripojiť k SMS bráne, je možné, že ste do SMS klienta zadali nesprávnu IP adresu alebo číslo portu. Môže tiež nastať situácia, že firewall na SMS bráne blokuje pripojenie.
Ak chcete skontrolovať, či používate správnu IP adresu a port, otvorte užívateľské rozhranie SMS brány. Na paneli nástrojov aplikácie SMS Gateway kliknite na tlačidlo Pokročilé. Toto zobrazí stránku služieb SMS brány. V zozname musíte nájsť službu OZX a kliknúť na "Detaily" (Obrázok 11)
Po otvorení stránky nájdete IP adresu v titulkovom riadku okna (Obrázok 12) a číslo portu na ľavej strane konfiguračného formulára. (Poznámka: Toto číslo portu môžete zmeniť otvorením konfiguračného formulára služby OZX.)
Tieto údaje môžete napísať priamo do vášho C# kódu. Napríklad, môžete použiť nasledujúcu funkciu na nastavenie pripojenia k SMS bráne na 192.168.93.192:9580 s OZX užívateľským menom tester a heslom test:
static void createClient() { Client = new OzxClient(); Client.AutoReconnect = true; Client.Connect("192.168.93.192", 9580, "testuser", "testpass"); }
Záverečné myšlienky
Aby sme to zhrnuli, C# SMS API vám umožňuje pripojiť sa k vašej SMS bráne pomocou protokolu OZX. Tento SMS protokol ponúka vynikajúci výkon a obojsmernú SMS komunikáciu. Skutočnosť, že bezplatná knižnica C# SMS API poskytovaná spoločnosťou Ozeki vám umožňuje odosielať SMS správy pomocou jednoduchých volaní metód a prijímať správy o odoslaní a doručení SMS vo forme C# udalostí, robí túto možnosť najlepšou voľbou, ak chcete v roku 2025 vytvoriť C# SMS aplikáciu.
More information