Envío de SMS en C# (.NET): Bibliotecas API y ejemplos de código

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Envío de SMS en C# (.NET): Resumen de bibliotecas y API



En el desarrollo moderno con C# (.NET), a menudo surge la necesidad de integrar notificaciones por SMS: confirmación de registro, autenticación de dos factores, alertas sobre el estado de un pedido o simplemente envíos masivos. En este artículo, analizaremos tres enfoques populares para enviar SMS desde aplicaciones en C#: el uso de los servicios en la nube Twilio, Vonage (anteriormente Nexmo) y el servicio ruso SMSC.ru. Todos los ejemplos de código están escritos para .NET 6/8 y utilizan métodos asíncronos modernos.



1. Envío de SMS a través de Twilio (proveedor global)



Twilio es uno de los servicios más populares para enviar SMS, mensajes de voz y otras comunicaciones. Cuenta con una excelente documentación y un paquete oficial de NuGet.



Instalación de la biblioteca

Agregue el paquete a través del Administrador de paquetes NuGet o ejecute el comando:

dotnet add package Twilio


Ejemplo de envío de SMS en C#

using Twilio;using Twilio.Rest.Api.V2010.Account;using Twilio.Types;

public class SmsService{ // Indique el SID de la cuenta y el Token de autenticación desde la consola de Twilio private readonly string _accountSid = "SU_ACCOUNT_SID"; private readonly string _authToken = "SU_AUTH_TOKEN"; private readonly string _fromPhone = "+1234567890"; // Número comprado en 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 enviado! SID: {msg.Sid}"); return true; } catch (Exception ex) { Console.WriteLine($"Error: {ex.Message}"); return false; } }}


Importante: El número del remitente debe estar verificado en la cuenta de Twilio. Para cuentas de prueba, los SMS solo se envían a números verificados.



2. Envío de SMS a través de Vonage (anteriormente Nexmo)



Vonage es otro potente proveedor en la nube. Su API es simple y el paquete se instala fácilmente a través de NuGet.



Instalación de la biblioteca

dotnet add package Vonage


Ejemplo de envío de SMS

using Vonage;using Vonage.Request;using Vonage.Messaging;

public class VonageSmsService{ private readonly string _apiKey = "SU_API_KEY"; private readonly string _apiSecret = "SU_API_SECRET"; private readonly string _from = "YourApp"; // Nombre del remitente

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 enviado! ID: {response.Messages[0].MessageId}"); return true; } else { Console.WriteLine($"Error: {response.Messages[0].ErrorText}"); return false; } }}


Nota: Para enviar a números rusos, puede ser necesaria una configuración adicional del nombre alfa.



3. Envío de SMS a través de SMSC.ru (servicio ruso)



Si su audiencia se encuentra principalmente en Rusia y la CEI, SMSC.ru puede ser una opción más conveniente y económica. No se requiere biblioteca: basta con una solicitud HTTP.



Ejemplo de envío a través de HttpC

Recommendations