Cómo enviar un SMS usando aplicaciones Java (En 16 Pasos)

Por fred larrey
Cómo enviar un SMS usando aplicaciones Java (En 16 Pasos)
cell phone image by Alexey Klementiev from Fotolia.com

Puedes enviar un mensaje de texto SMS a cualquier teléfono usando un programa Java. Será de gran ayuda si tienes alguna experiencia con el lenguaje de programación Java. También necesitas saber el operador de telefonía móvil del destinatario. Nuestro plan de acción es el siguiente: vamos a aprovechar que la mayoría de las compañías móviles permiten el acceso a sus direcciones SMTP (Simple Mail Transfer Protocol). Entonces todo lo que se tiene que hacer es utilizar Java para enviar un mensaje de correo electrónico a la dirección correcta, es decir, algo así como TuNúmeroTelefónico@TuProveedorSMTP.com. El vínculo "Direcciones de E-mail SMTP" que aparece en la sección de Recursos contiene una lista completa de SMTP para casi todos los operadores de telefonía móvil. También necesitarás el Eclipse para desarrolladores de Java IDE (si aún no lo tienes) para facilitar la instalación correcta de las bibliotecas Java de una manera rápida y fácil.

Obtención de Eclipse, tu proyecto y JavaMail Ready

Paso 1

Descarga e instala Eclipse navegando a http://www.eclipse.org/downloads/ en tu navegador web. Vamos a utilizar Eclipse para escribir nuestro código Java e instalar la biblioteca de JavaMail.

Paso 2

Ve al vínculo "Descargar JavaMail" que aparece en la sección de Recursos. Haz clic en el botón azul "Descargar" en el centro de la página. Haz clic en la casilla de verificación ce "Estoy de acuerdo con el Contrato de Licencia de JavaMail" y haz clic en "Continuar". Haz clic en el enlace "JavaMail-1.4.3.zip". Selecciona si deseas guardar el archivo en lugar de abrirlo.

Paso 3

Descomprime el archivo "JavaMail-1.4.3.zip" haciendo doble clic en él. Recuerda la ubicación donde se vaya a descomprimir.

Paso 4

Ejecuta Eclipse. Haz clic en "Archivo", "Nuevo", "Proyecto Java". Escribe "SMSText" como el nombre del proyecto y haz clic en "Finalizar".

Paso 5

Haz clic en la carpeta "SMSText" en el Explorador de paquetes (la barra de herramientas a la izquierda) y selecciona "Propiedades".

Paso 6

Haz clic en "Construir ruta Java" a la izquierda y luego haz clic en el botón de la derecha "Agregar JARs externos ...". Dirígete a la carpeta descomprimida "JavaMail 1.4.3" y haz clic en "Mail.jar" y haz clic en "Aceptar" y "OK" de nuevo. La biblioteca JavaMail está ahora cargada para tu proyecto SMSText y serás capaz de utilizarla para enviar mensajes de correo electrónico (y posteriormente mensajes de texto) con Java.

Envío de un mensaje

Paso 1

Haz doble clic en el proyecto "SMSText" en Eclipse y selecciona "Nuevo", "Clase". Introduce "ClienteDeCorreo" como el nombre y haz clic en "Finalizar".

Paso 2

Selecciona todo el código en la ventana de MailClient.java y sustitúyelo copiando y pegando el siguiente código Java: import javax.mail.; import javax.mail.internet.; import java.util.Properties; public class MailClient {

public void sendMail(String from, String to, String subject, String messageBody) throws MessagingException, AddressException { // Setup mail server String host = "your_email_carriers_smtp"; String username = "your_email@address.com"; String password = "your_email_password"; Properties props = new Properties(); props.put("mail.smtps.auth", "true");

// Get a mail session Session session = Session.getDefaultInstance(props, null);

// Define a new mail message MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject(subject);

message.setText(messageBody);

// Send the message Transport t = session.getTransport("smtps"); try { t.connect(host, username, password); t.sendMessage(message, message.getAllRecipients()); } finally { t.close(); }

}

public static void main(String[] args) { try { MailClient client = new MailClient(); String from="your_email_address"; String to = "Recipients10DigitNumber@RecipientsCarriersSMTP.com"; String subject="Test"; String message="I'm testing. Do you see this?";

client.sendMail(from,to,subject,message); } catch(Exception e) { e.printStackTrace(System.out); }

} }

Paso 3

Ve al enlace "Direcciones de correos electrónicos de operadores SMTP" que aparece en la sección de recursos. Encuentra tu compañía de correo electrónico, y copia las direcciones. Selecciona el texto dentro de las citas de "your_email_carriers_smtp" (al lado de "String host =") y pega la dirección. Por ejemplo, si estás usando Gmail, la línea de "String host" quedará así: String host = "smtp.gmail.com";

Paso 4

Sustituye "your_email@address.com" con tu dirección de correo electrónico.

Paso 5

Sustituye "yourPassword" con la contraseña que utilizas para acceder a tu correo electrónico. Necesitará ésta para dejar que Java pueda enviar un correo electrónico desde tu dirección de correo electrónico. No te preocupes, esta información no puede ser vista o enviarse a cualquier parte a través de Internet, y es necesaria para enviar el mensaje de texto, después de todo, el mensaje tiene que ser de alguien.

Paso 6

En el método "public static void main", sustituye "your_email_address" al lado "from =" con tu dirección de correo electrónico.

Paso 7

Ve al enlace de "Direcciones operadores móviles SMTP" que aparece en la sección de Recursos. Busca el proveedor de servicio móvil de la dirección de correo electrónico del destinatario (o, si quieres ponerlo a prueba en tu teléfono, puedes buscar la dirección de tu propio proveedor de servicio móvil). Por ejemplo, si el número del destinatario es 555-555-5555 y esta persona usa Verizon Wireless, la dirección será "5555555555@vtext.com".

Paso 8

Sustituye "Recipients10DigitNumber@RecipientsCarriersSMTP.com" con la dirección que encontraste en el paso anterior.

Paso 9

Cambia el "Asunto" o "Mensaje" a cualquier cosa que te gustaría, o puedes guardarlo como "Prueba" y "Estoy probando. ¿Ves esto?".

Paso 10

Pulsa el botón de reproducción verde para ejecutar el código. Nada se reproducirá en la pantalla de la consola. El destinatario debe recibir el texto en una cantidad normal de tiempo (como si le hubieras enviado un mensaje de texto desde tu teléfono).