6 votes

Comment envoyer des SMS en utilisant Java

Je souhaite envoyer des SMS à un téléphone portable à partir d'une application web, est-ce possible ? Comment faire ?

9voto

pstanton Points 8807

La manière la plus simple d'y parvenir est d'utiliser une passerelle SMS.

Il en existe de nombreux, celui que j'ai utilisé est le suivant Clickatel à laquelle je réponds simplement par un XML et la passerelle fait le reste pour presque rien.

J'ai fait cela en utilisant Java et Client HTTP apache commons

2voto

Kubi Points 849

Ici vous pouvez trouver un projet Java SMS API dans source forge.

En outre, vous avez besoin d'un Passerelle Sms pour l'infrastructure. Certaines entreprises vous fournissent des API, ce qui rend la création de programmes aussi simple que possible.

2voto

ratty Points 3926

Étape 1. Téléchargez Mail.jar et Activation.jar (voir Ressources pour les liens) et enregistrez-les dans le répertoire de la bibliothèque Java sur le disque local de votre ordinateur.

Étape 2.

Créez une nouvelle classe Java dans votre environnement de développement intégré (IDE) et nommez-la "MyMobileJava.java".

Étape 3.

Saisissez les bibliothèques Java suivantes au début de votre classe Java. Ces bibliothèques comprennent les ressources Java Mail and Communications API nécessaires et d'autres bibliothèques d'entrée/sortie et de classe Internet pour l'envoi de messages texte SMS.

import java.io.*;
import java.net.InetAddress;
import java.util.Properties;
import java.util.Date;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

Étape 4 Placez le code Java suivant après les déclarations d'importation de la bibliothèque afin d'instancier la classe Java et d'attribuer des valeurs aux messages texte SMS par défaut.

public class SMTPSend {

        public SMTPSend() {
        }

        public void msgsend() {
          String username = "MySMSUsername";
          String password = "MyPassword";
          String smtphost = "MySMSHost.com";
          String compression = "My SMS Compression Information";
          String from = "mySMSUsername@MySMSHost.com";
          String to = "PhoneNumberToText@sms.MySMSHost.com";
          String body = "Hello SMS World!";
          Transport myTransport = null;

Étape 5 Créez un code Java pour créer une nouvelle session de communication qui sera ensuite utilisée pour configurer les informations contenues dans un message texte. Ces informations seront ensuite préparées pour être envoyées. Saisissez le code Java suivant dans votre classe Java à la fin du code saisi à l'étape 4.

 try {
    Properties props = System.getProperties();
    props.put("mail.smtp.auth", "true");
    Session mailSession = Session.getDefaultInstance(props, null);
    Message msg = new MimeMessage(mailSession);
    msg.setFrom(new InternetAddress(from));
    InternetAddress[] address = {new InternetAddress(to)};
    msg.setRecipients(Message.RecipientType.TO, address);
    msg.setSubject(compression);
    msg.setText(body);
    msg.setSentDate(new Date());

Étape 6 Envoyez le message texte en vous connectant à votre adresse hôte SMS, en enregistrant les modifications apportées au message, puis en envoyant les informations. Pour ce faire, saisissez le code Java suivant pour terminer la classe Java.

     myTransport = mailSession.getTransport("smtp");
      myTransport.connect(smtphost, username, password);
      msg.saveChanges();
      myTransport.sendMessage(msg, msg.getAllRecipients());
      myTransport.close();
     } catch (Exception e) {
        e.printStackTrace();
      }
   }

   public static void main(String[] argv) {
     SMTPSend smtpSend = new SMTPSend();
     smtpSend.msgsend();
   }
 } //enter code here`

0voto

ratty Points 3926

Vous pouvez utiliser cet exemple de programme Java gratuit pour envoyer des SMS depuis votre PC à l'aide d'un modem GSM connecté à votre ordinateur vers votre port COM. Vous devez également télécharger et installer l'api Java comm de Sun.

Ce programme a besoin des fichiers Java suivants pour fonctionner.

  1. SerialConnection.java (Ce fichier est utilisé pour se connecter à votre port COM à partir de votre programme Java)

  2. SerialConnectionException.java (Ce fichier permet de gérer les exceptions de connexion série dans votre programme Java)

  3. SerialParameters.java (Ce programme est utilisé pour définir les propriétés de votre port COM afin de vous connecter à votre port COM à partir de votre programme Java)

  4. Sender.java (Il s'agit du programme qui implémente runnable et envoie des SMS en utilisant la connexion série)

  5. SMSClient.java (Cette classe Java est la classe principale qui peut être instanciée dans votre propre programme Java et appelée pour envoyer des SMS. Ce programme utilisera à son tour les quatre fichiers ci-dessus en interne pour envoyer vos SMS).

Télécharger les fichiers du programme d'exemple Send SMS Java

/*
 *
 * A free Java sample program 
 * A list of java programs to send SMS using your COM serial connection
 * and a GSM modem
 *
 * @author William Alexander
 * free for use as long as this comment is included 
 * in the program as it is
 * 
 * More Free Java programs available for download 
 * at http://www.java-samples.com
 *
 *
 * Note: to use this program you need to download all the 5 java files
 * mentioned on top
 *
 */
public class SMSClient implements Runnable{

  public final static int SYNCHRONOUS=0;
  public final static int ASYNCHRONOUS=1;
  private Thread myThread=null;

  private int mode=-1;
  private String recipient=null;
  private String message=null;

  public int status=-1;
  public long messageNo=-1;

  public SMSClient(int mode) {
      this.mode=mode;
    }

  public int sendMessage (String recipient, String message){
    this.recipient=recipient;
    this.message=message;
    //System.out.println("recipient: " + recipient + " message: " + message);
    myThread = new Thread(this);
    myThread.start();
//    run();
    return status;
    }
    public void run(){

    Sender aSender = new Sender(recipient,message);

    try{
      //send message
          aSender.send ();

         // System.out.println("sending ... ");

      //in SYNCHRONOUS mode wait for return : 0 for OK,
      //-2 for timeout, -1 for other errors
      if (mode==SYNCHRONOUS) {
          while (aSender.status == -1){
            myThread.sleep (1000);
          }
      }
      if (aSender.status == 0) messageNo=aSender.messageNo ;

    }catch (Exception e){

        e.printStackTrace();

    }

    this.status=aSender.status ;

    aSender=null;

  }
}

0voto

Le plus simple est de trouver un opérateur qui accepte les sms par le biais de la messagerie

Ex. Vous avez Telia/Comviq/Chello ou autre. Si vous envoyez un e-mail à yournumber@youroperator.com, votre e-mail sera envoyé par sms à votre téléphone.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X