EN

API de envío SMS MailSMS

La API SMS MailSMS está diseñada para técnicos y clientes que quieran conectar sus aplicaciones con la plataforma de mensajería SMS de LabsMobile. Más información en la descripción del producto MailSMS.

La funcionalidad de la API SMS MailSMS es el envío de mensajes SMS de forma individual a través de un email.

Las API MaillSMS es de utilidad en los siguientes casos:

  • No es posible realizar una integración (aplicación propietaria sin acceso al código, sin conocimientos técnicos de programación, etc.)
  • Enviar un SMS de forma manual desde cualquier cliente de email

Para iniciar una integración con la API MailSMS son imprescindibles los siguientes requisitos:

  • Una cuenta de LabsMobile asociada con un nombre de usuario (correo electrónico de registro). Crea una cuenta aquí.
  • Token API utilizado como contraseña y generado desde la sección Configuración API de tu cuenta.
  • Formato del email que se debe enviar y que se explica en esta documentación.

RecomendaciónRecomendamos utilizar la API SMS http/POST porque incluye más funcionalidades, mejora la seguridad y el rendimiento.


Autenticación

En la API SMS MailSMS la autenticación se realiza con dos parámetros:

  • El nombre de usuario (username) de la cuenta que debe enviarse en el email como dirección de remitente o From.
  • El tokenapi que se debe asignar en el asunto Subject del email. Este tokenapi se puede generar desde la sección Configuración API de tu cuenta.

Configuración y filtros

A continuación se detallan variables de configuración y aspectos de seguridad importantes en una integración con la API de envío SMS http/GET:

  • Dirección IP desde donde se enviarán los mensajes. Si se activa esta opción, sólo se admitirán peticiones de la lista de dirección IPs introducida. Esta funcionalidad es opcional, por defecto se aceptarán mensajes de cualquier IP.
  • Remitente por defecto (por defecto LABSMOBILE). Sólo algunos operadores permiten la asignación dinámica y con valor alfanumérico del campo remitente.
  • Límite de mensajes diario, por defecto 100.000 sms/día.
  • Límite de mensajes por batch, por defecto 10.000 sms/petición.
  • Filtro por países, para que sólo se procesen mensajes de una lista de países.
  • Filtro anti-duplicados, para evitar enviar mensajes iguales a un mismo destinatario.

Todos estos parámetros se pueden activar y modificar en la Configuración API y Preferencias de la cuenta.

Recomendación Recomendamos activar las Recargas automáticas para que siempre existan créditos disponibles en la cuenta y no se interrumpa el servicio de envío SMS.


Enviar SMS MailSMS

Para enviar un SMS a través de esta API se debe enviar un email (correo electrónico) a una dirección de la plataforma LabsMobile. Este email se transformará en un SMS según los parámetros enviados.

Recomendamos comprobar en el Histórico de la cuenta el resultado y si el mensaje se ha procesado correctamente o si se ha producido algún error.

  • PARÁMETROS

    Los parámetros son los campos comunes de cualquier email que deben cumplir los siguientes requisitos:

Formato EMAIL
To: XXXXXXXXX@api.labsmobile.com
From: Sender <myUsername>
Subject: <myToken>
Body: <contentMessage>
              
Importante

La API SMS MailSMS tiene algunas limitaciones y restricciones como:

  • Sólo se puede enviar un SMS a un único destinatario.
  • No se obtiene respuesta o confirmación del envío.
  • No es posible añadir otros parámetros como la programación, modo simulado, recepción de confirmaciones, etc.

Recomendamos si es posible la integración con la API SMS http/POST para una mayor seguridad, más funcionalidades y mejor rendimiento.

Envío básico
using System;
using System.Net;
using System.Net.Mail;
class SendMailSMS
{
    static void SendMail(string[] args)
    {
        MailMessage mailMessage = new MailMessage();
        mailMessage.From = new MailAddress("myUsernameLabsMobile");
        mailMessage.To.Add("12015550123@api.labsmobile.com");
        mailMessage.Subject = "myTokenLabsMobile";
        mailMessage.Body = "Your verification code is 123";
        SmtpClient smtpClient = new SmtpClient();
        smtpClient.Host = "addressSmtp";
        smtpClient.Port = 000;
        smtpClient.UseDefaultCredentials = false;
        smtpClient.Credentials = new NetworkCredential("myUsernameEmail", "myPasswordEmail");
        smtpClient.EnableSsl = true;
        try
        {
            smtpClient.Send(mailMessage);
            Console.WriteLine("Email Sent Successfully.");
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}
            
package com.example;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

class SendMail {
    public static void main(String[] args) {
      String to = "12015550123@api.labsmobile.com";
      String from = "myUsernameLabsMobile";
      String host = "smtp.com";

      Properties properties = System.getProperties();
      properties.put("mail.smtp.host", host);
      properties.put("mail.smtp.port", "---");
      properties.put("mail.smtp.ssl.enable", "true");
      properties.put("mail.smtp.auth", "true");

      Session session = Session.getInstance(properties, new javax.mail.Authenticator(){
        protected PasswordAuthentication getPasswordAuthentication() {
          return new PasswordAuthentication("myUsernameEmail", "myPasswordEmail");
        }
      });

      try {
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
        message.setSubject("myTokenLabsMobile");
        message.setText("Your verification code is 123");

        Transport.send(message);
      } catch (MessagingException mex) {
        mex.printStackTrace();
      }
   }
}

            
<?php
$to      = '12015550123@api.labsmobile.com';
$subject = 'myToken';
$message = 'Your verification code is 123';
$headers = 'From: myUsername';

mail($to, $subject, $message, $headers);


            
import smtplib
import ssl
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart


sender_email = 'myUsernameLabsMObile'
receiver_email = '12015550123@api.labsmobile.com'
subject = 'myTokenLabsMobile'
message = 'Your verification code is 123'


smtp_server = 'addressSmtp'
smtp_port = 465
username = 'myUsernameEmail'
password = 'myPasswordEmail'

msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = receiver_email
msg['Subject'] = subject

msg.attach(MIMEText(message, 'plain'))

context = ssl.create_default_context()

try:
    with smtplib.SMTP_SSL(smtp_server, smtp_port, context=context) as smtp:
        smtp.login(username, password)
        smtp.send_message(msg)
        print('Email sent successfully.')

except Exception as e:
    print(f'Error: {e}')
            
const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: 'myUsernameEmail',
    pass: 'myPasswordEmail'
  }
});

const mailOptions = {
  from: 'myUsernameLabsMobile',
  to: '12015550123@api.labsmobile.com',
  subject: 'myTokenLabsMobile',
  text: 'Your verification code is 123'
};

transporter.sendMail(mailOptions, function(error, info){
  if (error) {
    console.log(error);
  } else {
    console.log('Email sent: ' + info.response);
  }
});

            
require 'mail'

options = {
  address: 'addressSmtp',
  port: 587,
  domain: 'domail',
  user_name: 'myUsernameEmail',
  password: 'myPasswordEmail',
  authentication: 'plain'
}

Mail.defaults do
  delivery_method :smtp, options
end

Mail.deliver do
  to '12015550123@api.labsmobile.com'
  from 'myUsernameLabsMobile'
  subject 'myTokenLabsMObile'
  body 'Your verification code is 123'
end

puts 'Email sent'
            
Envío múltiple
using System;
using System.Net;
using System.Net.Mail;
class SendMailSMS
{
    static void SendMail(string[] args)
    {
        MailMessage mailMessage = new MailMessage();
        mailMessage.From = new MailAddress("myUsernameLabsMobile");
        mailMessage.To.Add("12015550123@api.labsmobile.com");
        mailMessage.To.Add("12015550124@api.labsmobile.com");
        mailMessage.To.Add("12015550125@api.labsmobile.com");
        mailMessage.Subject = "myTokenLabsMobile";
        mailMessage.Body = "Don't miss our Sale! Use code XXXX123 for 20% off.";
        SmtpClient smtpClient = new SmtpClient();
        smtpClient.Host = "addressSmtp";
        smtpClient.Port = 000;
        smtpClient.UseDefaultCredentials = false;
        smtpClient.Credentials = new NetworkCredential("myUsernameEmail", "myPasswordEmail");
        smtpClient.EnableSsl = true;
        try
        {
            smtpClient.Send(mailMessage);
            Console.WriteLine("Email Sent Successfully.");
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}
            
package com.example;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

class SendMail {
    public static void main(String[] args) {
      String to = {"12015550123@api.labsmobile.com","12015550124@api.labsmobile.com","12015550125@api.labsmobile.com"};
      String from = "myUsernameLabsMobile";
      String host = "smtp.com";

      Properties properties = System.getProperties();
      properties.put("mail.smtp.host", host);
      properties.put("mail.smtp.port", "---");
      properties.put("mail.smtp.ssl.enable", "true");
      properties.put("mail.smtp.auth", "true");

      Session session = Session.getInstance(properties, new javax.mail.Authenticator(){
        protected PasswordAuthentication getPasswordAuthentication() {
          return new PasswordAuthentication("myUsernameEmail", "myPasswordEmail");
        }
      });

      try {
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
        message.setSubject("myTokenLabsMobile");
        message.setText("Don't miss our Sale! Use code XXXX123 for 20% off.");

        Transport.send(message);
      } catch (MessagingException mex) {
        mex.printStackTrace();
      }
   }
}
            
<?php 
$to      = '12015550123@api.labsmobile.com, 12015550124@api.labsmobile.com, 12015550125s@api.labsmobile.com';
$subject = 'myToken';
$message = 'Do not miss our Sale! Use code XXXX123 for 20% off.';
$headers = 'From: myUsername';

mail($to, $subject, $message, $headers);
            
import smtplib
import ssl
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart


sender_email = 'myUsernameLabsMObile'
receiver_email = ['12015550123@api.labsmobile.com', '12015550124@api.labsmobile.com', '12015550125@api.labsmobile.com']
subject = 'myTokenLabsMobile'
message = 'Do not miss our Sale! Use code XXXX123 for 20% off.'


smtp_server = 'addressSmtp'
smtp_port = 465
username = 'myUsernameEmail'
password = 'myPasswordEmail'

msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = receiver_email
msg['Subject'] = subject

msg.attach(MIMEText(message, 'plain'))

context = ssl.create_default_context()

try:
    with smtplib.SMTP_SSL(smtp_server, smtp_port, context=context) as smtp:
        smtp.login(username, password)
        smtp.send_message(msg)
        print('Email sent successfully.')

except Exception as e:
    print(f'Error: {e}')
            
const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: 'myUsernameEmail',
    pass: 'myPasswordEmail'
  }
});

const mailOptions = {
  from: 'myUsernameLabsMobile',
  to: '12015550123@api.labsmobile.com,12015550124@api.labsmobile.com,12015550125@api.labsmobile.com',
  subject: 'myTokenLabsMobile',
  text: 'Do not miss our Sale! Use code XXXX123 for 20% off.'
};

transporter.sendMail(mailOptions, function(error, info){
  if (error) {
    console.log(error);
  } else {
    console.log('Email sent: ' + info.response);
  }
});
            
require 'mail'

options = {
  address: 'addressSmtp',
  port: 587,
  domain: 'domail',
  user_name: 'myUsernameEmail',
  password: 'myPasswordEmail',
  authentication: 'plain'
}

Mail.defaults do
  delivery_method :smtp, options
end

Mail.deliver do
  to '12015550123@api.labsmobile.com,12015550124@api.labsmobile.com,12015550125@api.labsmobile.com',
  from 'myUsernameLabsMobile'
  subject 'myTokenLabsMObile'
  body 'Do not miss our Sale! Use code XXXX123 for 20% off.'
end

puts 'Email sent'