Enviar SMS microsoft .NET frameworkSMS NET. Enviar SMS con .NET

SMS masivo desde 2002

Altiria ofrece la posibilidad de envío de SMS con .NET utilizando la pasarela HTTP SMS. Para ilustrar cómo realizarlo, más adelante se ofrecen cuatro códigos de ejemplo, dos en Visual C# y dos en Visual Basic utilizando tanto HttpWebRequest 4.0 como HttpClient 4.5.

API SMS .NET: Para integrar el envío de SMS con .NET, resulta conveniente leer la documentación técnica de envío de SMS, nuestra API SMS. El protocolo de comunicaciones más sencillo para implementar el envío de SMS desde el lenguaje .NET es el protocolo HTTP. De esta forma podrás enviar SMS a tus clientes con alertas de servicio, enviar ofertas por SMS o comunicaciones desde tu software de gestión con información relevante.Si tienes problemas en integración, consulta nuestra página de preguntas frecuentes de integración de envío de SMS.

Ejemplos en Visual C#

Ejemplo para .NET en Visual C# utilizando HttpWebRequest 4.0

// Copyright (c) 2018, Altiria TIC SL
// All rights reserved.
// El uso de este código de ejemplo es solamente para mostrar el uso de la pasarela de envío de SMS de Altiria
// Para un uso personalizado del código, es necesario consultar la API de especificaciones técnicas, donde también podrás encontrar
// más ejemplos de programación en otros lenguajes de programación y otros protocolos (http, REST, web services)
// https://www.altiria.com/api-envio-sms/

using System;
using System.Text;
using System.Net;
using System.IO;

namespace ConsoleCOld {
class HttpCSWRAltiria {
static void Main(string[] args) {
	
//Se fija la URL sobre la que enviar la petición POST
HttpWebRequest loHttp =
  (HttpWebRequest)WebRequest.Create("http://www.altiria.net/api/http");

// Compone el mensaje a enviar
// XX, YY y ZZ se corresponden con los valores de identificación del usuario en el sistema.
string lcPostData =
  "cmd=sendsms&domainId=XX&login=YY&passwd=ZZ&dest=346xxxxxxxx&dest=346yyyyyyyy" +
  "&msg=Mensaje de prueba"; 
  //No es posible utilizar el remitente en América pero sí en España y Europa
  //Descomentar la línea solo si se cuenta con un remitente autorizado por Altiria
  //cmd=cmd + "&senderId=remitente";

// Se codifica en utf-8
byte[] lbPostBuffer = System.Text.Encoding.GetEncoding("utf-8").GetBytes(lcPostData);
loHttp.Method = "POST";
loHttp.ContentType = "application/x-www-form-urlencoded";
loHttp.ContentLength = lbPostBuffer.Length;

//Fijamos tiempo de espera de respuesta = 60 seg
loHttp.Timeout = 60000;
String error = "";
String response = "";
// Envía la peticion
try {
  Stream loPostData = loHttp.GetRequestStream();
  loPostData.Write(lbPostBuffer, 0, lbPostBuffer.Length);
  loPostData.Close();
  // Prepara el objeto para obtener la respuesta
  HttpWebResponse loWebResponse = (HttpWebResponse)loHttp.GetResponse();
  // La respuesta vendría codificada en utf-8
  Encoding enc = System.Text.Encoding.GetEncoding("utf-8");
  StreamReader loResponseStream =
  new StreamReader(loWebResponse.GetResponseStream(), enc);
  // Conseguimos la respuesta en una cadena de texto
  response = loResponseStream.ReadToEnd();
  loWebResponse.Close();
  loResponseStream.Close();
}
catch (WebException e) {
  if (e.Status == WebExceptionStatus.ConnectFailure)
     error = "Error en la conexión";
  else if (e.Status == WebExceptionStatus.Timeout)
     error = "Error TimeOut";
  else
     error = e.Message;
}
finally {
  if (error != "")
     Console.WriteLine(error);
  else
     Console.WriteLine(response);
}
}
}
}

Ejemplo para .NET en Visual C# utilizando HttpClient 4.5

// Copyright (c) 2018, Altiria TIC SL
// All rights reserved.
// El uso de este código de ejemplo es solamente para mostrar el uso de la pasarela de envío de SMS de Altiria
// Para un uso personalizado del código, es necesario consultar la API de especificaciones técnicas, donde también podrás encontrar
// más ejemplos de programación en otros lenguajes de programación y otros protocolos (http, REST, web services)
// https://www.altiria.com/api-envio-sms/

using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;

namespace ConsoleCOld {
class HttpCSHCAltiria {
static void Main(string[] args) {
Envio();
}
static async void Envio() {
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://www.altiria.net");
//Establecemos el TimeOut para obtener la respuesta del servidor
client.Timeout = TimeSpan.FromSeconds(60);

//Se compone el mensaje a enviar
// XX, YY y ZZ se corresponden con los valores de identificación del usuario en el sistema.
var postData = new List<KeyValuePair<string, string>>();
postData.Add(new KeyValuePair<string, string>("cmd", "sendsms"));
postData.Add(new KeyValuePair<string, string>("domainId", "XX"));
postData.Add(new KeyValuePair<string, string>("login", "YY"));
postData.Add(new KeyValuePair<string, string>("passwd", "ZZ"));
postData.Add(new KeyValuePair<string, string>("dest", "346xxxxxxxx"));
postData.Add(new KeyValuePair<string, string>("dest", "346yyyyyyyy"));
postData.Add(new KeyValuePair<string, string>("msg", "Mensaje de prueba"));
//No es posible utilizar el remitente en América pero sí en España y Europa
//Descomentar la línea solo si se cuenta con un remitente autorizado por Altiria
//postData.Add(new KeyValuePair<string, string>("senderId", "remitente"));

HttpContent content = new FormUrlEncodedContent(postData);
String err = "";
String resp="";
try {
   //Se fija la URL sobre la que enviar la petición POST
   HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "/api/http");
   request.Content = content;
   content.Headers.ContentType.CharSet = "UTF-8";
   request.Content.Headers.ContentType = 
     new MediaTypeHeaderValue("application/x-www-form-urlencoded");
   HttpResponseMessage response = client.SendAsync(request).Result;
   var responseString = response.Content.ReadAsStringAsync();
   resp = responseString.Result;
}
catch (Exception e) {
   err = e.Message;
}
finally {
   if (err != "")
     Console.WriteLine(err);
   else
     Console.WriteLine(resp);
} 
}
}
}

Ejemplos en Visual Basic

Ejemplo para .NET en Visual Basic utilizando HttpWebRequest 4.0

Imports System.Net

' Copyright (c) 2018, Altiria TIC SL
' All rights reserved.
' El uso de este código de ejemplo es solamente para mostrar el uso de la pasarela de envío de SMS de Altiria
' Para un uso personalizado del código, es necesario consultar la API de especificaciones técnicas, donde también podrás encontrar
' más ejemplos de programación en otros lenguajes de programación y otros protocolos (http, REST, web services)
' https://www.altiria.com/api-envio-sms/

Module HttpVBWRAltiria

Sub Main()
'Se fija la URL sobre la que enviar la petición POST
Dim loHttp As HttpWebRequest
loHttp =
  CType(WebRequest.Create("http://www.altiria.net/api/http"), HttpWebRequest)

'Compone el mensaje a enviar
'XX, YY y ZZ se corresponden con los valores de identificación del usuario en el sistema.
Dim lcPostData As String =
  "cmd=sendsms&domainId=XX&login=YY&passwd=ZZ&dest=346xxxxxxxx&dest=346yyyyyyyy" +
  "&msg=Texto de prueba"
' No es posible utilizar el remitente en América pero sí en España y Europa
' Descomentar la línea solo si se cuenta con un remitente autorizado por Altiria
' lcPostData += "&senderId=remitente"

'Lo codifica en utf-8
Dim lbPostBuffer As Byte() =
  System.Text.Encoding.GetEncoding("utf-8").GetBytes(lcPostData)

loHttp.Method = "POST"
loHttp.ContentType = "application/x-www-form-urlencoded"
loHttp.ContentLength = lbPostBuffer.Length

'Fijamos TimeOut de espera de respuesta del servidor = 60 seg
loHttp.Timeout = 60000
Dim err As String = ""
Dim response As String = ""

'Envía la peticion
Try
  Dim loPostData As System.IO.Stream = loHttp.GetRequestStream()
  loPostData.Write(lbPostBuffer, 0, lbPostBuffer.Length)
  loPostData.Close()

  'Prepara el objeto para obtener la respuesta
  Dim loWebResponse As HttpWebResponse = CType(loHttp.GetResponse(), HttpWebResponse)
  'La respuesta vendría codificada en utf-8
  Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("utf-8")
  Dim loResponseStream As System.IO.StreamReader =
    New System.IO.StreamReader(loWebResponse.GetResponseStream(), enc)
  'Conseguimos la respuesta en una cadena de texto
  response = loResponseStream.ReadToEnd()
  loWebResponse.Close()
  loResponseStream.Close()

Catch e As WebException
  If (e.Status = WebExceptionStatus.ConnectFailure) Then
     err = "Error en la conexión"
  ElseIf (e.Status = WebExceptionStatus.Timeout) Then
     err = "Error Time Out"
  Else
     err = e.Message
  End If

Finally
  If (err <> "") Then
     Console.WriteLine(err)
  Else
     Console.WriteLine(response)
  End If
End Try
End Sub
End Module

Ejemplo para .NET en Visual Basic utilizando HttpClient 4.5

Imports System.Net
Imports System.Net.Http

' Copyright (c) 2018, Altiria TIC SL
' All rights reserved.
' El uso de este código de ejemplo es solamente para mostrar el uso de la pasarela de envío de SMS de Altiria
' Para un uso personalizado del código, es necesario consultar la API de especificaciones técnicas, donde también podrás encontrar
' más ejemplos de programación en otros lenguajes de programación y otros protocolos (http, REST, web services)
' https://www.altiria.com/api-envio-sms/

Module HttpVBHCAltiria

Sub Main()
Dim client As HttpClient = New HttpClient
client.BaseAddress = New Uri("Http://www.altiria.net")
'Fijamos TimeOut de espera de respuesta del servidor = 60 seg
client.Timeout = TimeSpan.FromSeconds(60)

'Se compone el mensaje a enviar
'XX, YY y ZZ se corresponden con los valores de identificación del usuario en el sistema.
Dim postData As List(Of KeyValuePair(Of String, String))
postData = New List(Of KeyValuePair(Of String, String))
postData.Add(New KeyValuePair(Of String, String)("cmd", "sendsms"))
postData.Add(New KeyValuePair(Of String, String)("domainId", "XX"))
postData.Add(New KeyValuePair(Of String, String)("login", "YY"))
postData.Add(New KeyValuePair(Of String, String)("passwd", "ZZ"))
postData.Add(New KeyValuePair(Of String, String)("dest", "346xxxxxxxx"))
postData.Add(New KeyValuePair(Of String, String)("dest", "346yyyyyyyy"))
postData.Add(New KeyValuePair(Of String, String)("msg", "Mensaje de prueba"))
' No es posible utilizar el remitente en América pero sí en España y Europa
' Descomentar la línea solo si se cuenta con un remitente autorizado por Altiria
' postData.Add(New KeyValuePair(Of String, String)("senderId", "remitente"))

Dim content As HttpContent = New FormUrlEncodedContent(postData)
Dim err = ""
Dim resp = ""
Try
  'Se fija la URL sobre la que enviar la petición POST
  Dim request As HttpRequestMessage
  request = New HttpRequestMessage(HttpMethod.Post, "/api/http")
  request.Content = content
  content.Headers.ContentType.CharSet = "UTF-8"
  Dim contentType = "application/x-www-form-urlencoded"
  request.Content.Headers.ContentType = New Headers.MediaTypeHeaderValue(contentType)
  Dim response As HttpResponseMessage = client.SendAsync(request).Result

  Dim responseString = response.Content.ReadAsStringAsync
  resp = responseString.Result

Catch e1 As Exception
   err = e1.Message
Finally
   If (err <> "") Then
      Console.WriteLine(err)
   Else
      Console.WriteLine(resp)
   End If
End Try
End Sub

End Module

Otros protocolos de envío de SMS

API SMS REST Json

API SMS REST Json

Pasarela de envío de SMS mediante Web Services REST Json

Web Services SOAP SMS

Web Services SOAP SMS

Pasarela SMS mediante servicios web SOAP

Web de envío SMS

Web de envío SMS

Además de la integración del envío de SMS en su aplicativo, Altiria ofrece un panel de control web en que podrás consultar las estadísticas de envío y descargar informes con el estado de los envíos y la confirmación de entrega.

Mail2SMS: enviar SMS por email

Mail2SMS: enviar SMS por email

Pasarela de envío de SMS masivos por email.

Marketing SMS

Marketing SMS

Además del propio envío de SMS, Altiria te ofrece sugerencias para que tus envíos de SMS sean más efectivos.

Envío de landing web móvil parametrizada

Además del envío de un SMS, la pasarela SMS gateway de Altiria te ofrece la posibilidad de enviar una página web móvil, SMS landing, con información adicional sin las restricciones de espacio de un SMS o con un formulario de contacto para recibir respuesta de tus clientes por SMS o usuarios o enviarles encuestas por SMS, formularios de satisfacción o firma de contratos.

Además de poder parametrizar el texto del mensaje SMS, Altiria también te permite enviar parámetros adicionales  en la petición de envío para parametrizar el contenido de la web y que tus usuarios y clientes reciban un servicio personalizado.

Cobertura internacional

Siempre se debe usar el formato de numeración internacional, incluyendo el código de país. Por ejemplo, para un número de móvil de España sería 346XXXXXXXX. En el ejemplo de código anterior, se está enviando un SMS de prueba a dos teléfonos de España, 346xxxxxxxx y 346yyyyyyyy, que deberán ser sustituidos por los teléfonos con los que se quiera probar, siempre incluyendo el prefijo internacional. Ofrecemos la mejor cobertura internacional con conexiones directas de máxima calidad.

Características adicionales del envío de SMS en .NET

  • Remitente personalizado: Personalización en el envío de SMS con .NET del remitente de origen por una cadena de texto, por ejemplo, el nombre de su empresa. (*)
  • Confirmación de entrega: Conozca la fecha y hora en la que se ha recibido el SMS enviado o las causas por las que no se ha recibido. (*)
  • Sistema avanzado de control de crédito con aviso automático por email que impide quedarse sin crédito de envío de forma inesperada.
  • Informes automáticos de envío de SMS y confirmación de entrega, permiten mantener un control periódico de los envíos de SMS en .NET.
  • Posiblidad de reenvío de SMS pendientes por falta de crédito. Si realizó un envío de SMS mediante .NET y no tenía crédito, los mensajes se quedan encolados en nuestros sistemas hasta que disponga de crédito, de forma que no necesita repetir el envío.

(*) La disponibilidad de la confirmación de entrega al usuario y del remitente personalizado depende de cada país, consúltenos para su país de interés.