Envoi de SMS en C# (.NET) : Aperçu des bibliothèques et API
Dans le développement moderne en C# (.NET), il est souvent nécessaire d'intégrer des notifications SMS : confirmation d'inscription, authentification à deux facteurs, alertes de statut de commande ou simplement envoi en masse. Dans cet article, nous analyserons trois approches populaires pour envoyer des SMS à partir d'applications C# : l'utilisation des services cloud Twilio, Vonage (anciennement Nexmo) et du service russe SMSC.ru. Tous les exemples de code sont écrits pour .NET 6/8 et utilisent des méthodes asynchrones modernes.
1. Envoi de SMS via Twilio (fournisseur mondial)
Twilio est l'un des services les plus populaires pour l'envoi de SMS, de messages vocaux et d'autres communications. Il dispose d'une excellente documentation et d'un package NuGet officiel.
Installation de la bibliothèque
Ajoutez le package via le gestionnaire de packages NuGet ou exécutez la commande :
dotnet add package TwilioExemple d'envoi de SMS en C#
using Twilio;using Twilio.Rest.Api.V2010.Account;using Twilio.Types;
public class SmsService{ // Indiquez l'Account SID et l'Auth Token depuis la console Twilio private readonly string _accountSid = "VOTRE_ACCOUNT_SID"; private readonly string _authToken = "VOTRE_AUTH_TOKEN"; private readonly string _fromPhone = "+1234567890"; // Numéro acheté chez Twilio
public async Task<bool> SendSmsAsync(string toPhone, string message) { TwilioClient.Init(_accountSid, _authToken);
try { var msg = await MessageResource.CreateAsync( body: message, from: new PhoneNumber(_fromPhone), to: new PhoneNumber(toPhone) ); Console.WriteLine($"SMS envoyé ! SID : {msg.Sid}"); return true; } catch (Exception ex) { Console.WriteLine($"Erreur : {ex.Message}"); return false; } }}Important : Le numéro de l'expéditeur doit être confirmé dans le compte Twilio. Pour les comptes de test, les SMS sont envoyés uniquement vers les numéros vérifiés.
2. Envoi de SMS via Vonage (anciennement Nexmo)
Vonage est un autre fournisseur cloud puissant. Son API est simple et le package s'installe facilement via NuGet.
Installation de la bibliothèque
dotnet add package VonageExemple d'envoi de SMS
using Vonage;using Vonage.Request;using Vonage.Messaging;
public class VonageSmsService{ private readonly string _apiKey = "VOTRE_API_KEY"; private readonly string _apiSecret = "VOTRE_API_SECRET"; private readonly string _from = "YourApp"; // Nom de l'expéditeur
public async Task<bool> SendSmsAsync(string toPhone, string message) { var credentials = Credentials.FromApiKeyAndSecret(_apiKey, _apiSecret); var client = new VonageClient(credentials);
var request = new SendSmsRequest { To = toPhone, From = _from, Text = message };
var response = await client.SmsClient.SendAnSmsAsync(request);
if (response.Messages[0].Status == "0") { Console.WriteLine($"SMS envoyé ! ID : {response.Messages[0].MessageId}"); return true; } else { Console.WriteLine($"Erreur : {response.Messages[0].ErrorText}"); return false; } }}Remarque : Pour l'envoi vers des numéros russes, une configuration supplémentaire du nom alpha peut être nécessaire.
3. Envoi de SMS via SMSC.ru (service russe)
Si votre public se trouve principalement en Russie et dans la CEI, SMSC.ru peut être une option plus pratique et moins chère. Aucune bibliothèque n'est nécessaire — une requête HTTP suffit.