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:
from email obligatorio
Email o username para identificar la cuenta de origen del envío.
Opcionalmente se puede añadir el campo
FromName
que corresponderá con el remitente. El remitente sólo está disponible en algunos países y operadores y debe tener un valor numérico (longitud máxima 16 dígitos) o alfanumérico (capacidad máxima 11 caracteres).Ejemplo:
From: MyBrand <user@midominio.com>
to email obligatorio
Email de destino del email que corresponde con el número del destinatario del SMS seguido de
@api.labsmobile.com
Ejemplo:
To: 165428376611@api.labsmobile.com
subject string obligatorio
Campo asunto del email que debe tener el valor del Token API generado en la sección Configuración API de la cuenta.
Ejemplo:
Subject: lUHia713N5aByua79fU5s1Nlb6ItZ9ioVu
body string obligatorio
Números de teléfono de los destinatarios a los que se envía el mensaje. Los números deben cumplir el formato internacional E.164 y separados por comas (",") si se incluyen más de un número de destino.
Ejemplo:
&msisdn=34609033162,34609362742
To: XXXXXXXXX@api.labsmobile.com From: Sender <myUsername> Subject: <myToken> Body: <contentMessage>
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.
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'
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'
Recursos de soporte
Recomendamos consultes y tengas en cuenta los siguientes recursos de soporte en tu integración:
- Descripción, manual y ejemplos de código de la API de envío SMS
- Guía técnica de un proceso de validación o autenticación OTP por SMS
- Todas las versiones y funcionalidades de la API de LabsMobile
- Tutorial primeros pasos de una integración API
- Crea una cuenta de prueba
- Recomendaciones y buenas prácticas en cualquier integración
- Plugins, módulos y extensiones
- ¿Necesitas ayuda? Contacta con nuestros técnicos