Comment envoyer des SMS depuis C# en utilisant SQL Server
Télécharger :
Sending_SMS_through_MS_SQL_Server.zip
Découvrez comment envoyer des SMS en insérant des lignes dans une base de données Microsoft SQL via une application C#.NET. Cette technologie est destinée aux développeurs ayant des connaissances de base en C#.NET et SQL. Le code source téléchargeable vous aide à démarrer.
Dans les chapitres suivants, vous trouverez les prérequis nécessaires et une explication détaillée sur l'utilisation du code. Un diagramme de workflow utile vous montre la connexion de base entre l'utilisateur de l'application C# et le téléphone du destinataire.
Le code est utile si vous souhaitez
- ajouter une fonctionnalité SMS à votre application C#.
- intégrer des notifications SMS automatisées.
- sécuriser vos produits en ajoutant une connexion par SMS.
Prérequis
Les exigences logicielles du système sont listées dans le tableau suivant. Veuillez télécharger SMS Gateway et installer le logiciel SMS Gateway avec le framework .NET 4.5 et Microsoft Visual Studio pour exécuter votre code.
Système d'exploitation : | Windows 11, Windows 10, Windows 8, Windows 7, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2008 R2, Windows Vista |
Exigences logicielles de base : |
.NET Framework 4.5
Ozeki SMS Gateway Microsoft SQL Server 2016 Express Edition ou versions plus récentes de Microsoft SQL Server |
Plateforme de développement : | Microsoft Visual Studio |
Comment ça marche
Vous devez d'abord installer Ozeki SMS Gateway et créer un utilisateur de base de données dans le SMS Gateway. Connectez l'utilisateur à votre base de données MSSQL. Les SMS à envoyer seront SELECT-és depuis la table SQL des messages sortants, qui est appelée 'ozekimessageout' par défaut.
Ensuite, vous devez installer un environnement C#.NET. Votre application C# peut se connecter à votre base de données MSSQL et insérer des SMS dans la table des messages sortants.
Assurez-vous que votre Ozeki SMS Gateway est connecté au réseau GSM via un modem GSM ou un fournisseur de services SMS IP via Internet. Par exemple, CIMD2 ou UCP/EMI sont des connexions très populaires auprès des fournisseurs de services.
Voir le workflow de la connexion C# via MSSQL sur la Figure 1.
En gros, Microsoft SQL Server peut être atteint depuis votre application C# et Ozeki SMS Gateway. Tous les messages entrants et sortants sont stockés sur le serveur MSSQL pour une utilisation ultérieure.
En ajoutant les codes appropriés à votre application C#, vous pouvez la connecter à votre base de données SQL pour lui permettre d'INSÉRER de nouvelles lignes dans la table des messages sortants et de lire les messages entrants.
L'utilisateur de base de données d'Ozeki SMS Gateway est capable de lire la table des messages sortants pour envoyer des SMS et d'INSÉRER de nouvelles lignes dans la table des messages entrants pour que d'autres utilisateurs puissent les lire. Par exemple, l'utilisateur de l'application C# peut les lire.
Comment configurer votre serveur MSSQL
Étape 1 : Installer Microsoft SQL Server 2016 Express EditionÉtape 2 : Démarrer Microsoft SQL Server 2016 Express Edition et se connecter.
Étape 3 : Activer l'authentification du serveur, afin qu'il demande toujours une paire utilisateur/mot de passe de base de données. (Tutoriel d'aide rapide)
Étape 4 : Créer une base de données et accorder les permissions select, insert, update, delete à un utilisateur. (Tutoriel d'aide rapide)
Ajouter un utilisateur de base de données à Ozeki SMS Gateway
Étape 1 : Démarrer l'interface graphique navigateur d'Ozeki 10 Aide en image)Étape 2 : Démarrer Ozeki SMS Gateway depuis le bureau d'Ozeki 10.
Étape 3 : Installer un utilisateur de base de données et configurer la chaîne de connexion. (Tutoriel d'aide rapide)
Utiliser le code C# téléchargé
Étape 1 : Télécharger le fichier zip et le décompresser.Étape 2 : Configurer les données de connexion à la base de données SQL dans 'DatabaseHandling.cs'. (Tutoriel d'aide rapide)
Étape 3 : Démarrer le service Ozeki 10 s'il n'est pas en cours d'exécution. (Tutoriel d'aide rapide)
Étape 4 : Compiler et exécuter le projet dans Microsoft Visual Studio
Étape 5 : Une fenêtre s'ouvrira. Cliquez sur le bouton Composer un message.
Remplissez les champs du destinataire et du texte du message et cliquez sur 'Envoyer'. (Tutoriel d'aide rapide)
Comment fonctionne l'exemple de code
Le code téléchargeable en haut de la page peut insérer des messages dans la table 'ozekimessageout'. L'utilisateur de base de données d'Ozeki SMS Gateway vérifie périodiquement 'ozekimessageout' pour trouver de nouvelles lignes de messages et les envoyer au téléphone du destinataire. Chaque ligne de message a un attribut de statut. Après l'envoi du SMS, le statut passera de 'Send' à 'Sent'.
N'oubliez pas de vérifier si votre serveur Microsoft SQL est en cours d'exécution et de modifier les détails de connexion au serveur dans 'DatabaseHandling.cs', que vous pouvez trouver dans le projet exemple.
Classes C# de l'exemple de code
MainForm.cs (Figure 2) :
Cette classe contient la première fenêtre qui s'ouvre.
Comme vous pouvez le voir sur la Figure 2, elle peut afficher le contenu de deux tables.
Ce contenu est lu par une instruction SELECT à partir de 'ozekimessageout' et 'ozekimessagein'.
Elle contient également deux boutons 'Rafraîchir'
et un bouton 'Composer un message'. Appuyez dessus pour utiliser la classe suivante, 'ComposeMessageForm.cs'.
ComposeMessageForm.cs (Figure 3) :
C'est la page suivante où vous pouvez remplir les champs de données nécessaires pour créer un nouveau message.
DatabaseHandling.cs :
C'est ici que vous pouvez configurer la connexion à la base de données (Figure 4)
et rafraîchir les tables de 'MainForm.cs'.
Comment fonctionne le code d'envoi de messages
Dans 'ComposeMessageForm.cs', vous pouvez remplir les deux champs avec l'adresse du destinataire et le texte du message. En appuyant sur 'Envoyer', vous pouvez démarrer le code suivant :
ComposeMessageForm.cs... private void buttonSend_Click(object sender, EventArgs e) { CheckAndSendMessage(); } private void CheckAndSendMessage() { if (textBoxRecipient.Text == "") { MessageBox.Show("Le champ destinataire ne doit pas être vide !", "Valeur de champ incorrecte"); return; } string errorMsg = ""; DatabaseHandling.insertMessage(textBoxRecipient.Text, textBoxMessageText.Text, out errorMsg); MessageBox.Show(errorMsg, "Résultat de l'insertion du message"); } ...Figure 5 - Vérifie si le champ destinataire est vide
La méthode CheckAndSendMessage() est appelée par 'buttonSend_Click(...)'. La méthode commence par vérifier le champ destinataire et exécute insertMessage(...) de 'DatabaseHandling.cs' si le champ destinataire n'est PAS vide (Figure 5). insertMessage(...) peut insérer une nouvelle ligne dans la table 'ozekimessageout' (Figure 6) (La valeur par défaut de l'attribut msgtype est SMS:TEXT). Ozeki SMS Gateway lira les lignes du serveur SQL comme vous pouvez le voir sur le diagramme de flux ci-dessus.
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 = "L'insertion a échoué !"; } else { errorMsg = "L'insertion a réussi !"; } } catch (Exception e) { errorMsg = e.Message; } CloseConnection(); } ...Figure 6 - INSERT un message dans votre base de données SQL
Vous pouvez utiliser d'autres types de messages que 'SMS:TEXT' (par exemple 'SMS:WAPPUSH', 'SMS:VCARD') comme vous pouvez le voir sur Figure 7.
... sqlComm.CommandText = "insert into ozekimessageout " + "(msgtype,receiver,msg,status) " + "values ('SMS:WAPPUSH','" + receiver + "','" + messageText + "','send');"; ...Figure 7 - Type de message changé de 'SMS:TEXT' à 'SMS:WAPPUSH'
Questions fréquemment posées
Question :
Cet exemple C# peut-il s'exécuter sur un ordinateur différent de celui d'Ozeki SMS Gateway ou du serveur MSSQL ?
Réponse : Oui, c'est possible. Veuillez modifier l'adresse IP dans 'DatabaseHandling.cs' pour correspondre à l'adresse IP de votre serveur MSSQL.
Question :
Puis-je changer le numéro de téléphone de l'expéditeur ?
Réponse :
Oui. Veuillez INSÉRER également le numéro de l'expéditeur dans la ligne du message (Figure 8).
Cela ne fonctionne que si vous avez une connexion SMS IP.
... string SenderNumber = "+449876543"; sqlComm.CommandText = "insert into ozekimessageout " + "(msgtype,sender,receiver,msg,status) " + "values ('SMS:TEXT','" + SenderNumber + "','" + receiver + "','" + messageText + "','send');"; ...Figure 8 - Instruction INSERT INTO modifiée avec un attribut 'sender' supplémentaire
Cet article explique comment envoyer des SMS depuis C# en utilisant un serveur SQL. Cela signifie que vous pouvez envoyer un SMS en insérant une ligne dans une base de données Microsoft SQL. Ce système utilise une application C#.NET. Envoyer un SMS depuis un serveur SQL signifie que vous pouvez utiliser le langage SQL pour rechercher un message ou gérer les SMS. Cela améliorera considérablement l'efficacité de la communication au sein de votre organisation et accélérera la circulation de l'information.
Si vous souhaitez en savoir plus sur la technologie proposée par Ozeki, visitez le site web d'Ozeki. Nous vous conseillons de commencer par l'API SMS C#. Vous en apprendrez plus sur l'API SMS C# d'Ozeki dans cet article. Ensuite, si vous souhaitez envoyer des SMS en utilisant l'API SMS HTTP, consultez cet article : API SMS HTTP.
Pour commencer à envoyer des SMS via des API, téléchargez dès maintenant la passerelle SMS Ozeki et commencez à travailler !
More information
- API SMS C#
- Script SMS C# ASP
- Comment envoyer des SMS depuis C# en utilisant HTTP GET
- API SMS C# pour SQL