Pour utiliser les services de 123-SMS.net, saisissez votre email et votre numéro de téléphone. Vous recevrez aussitôt votre mot de passe personnel.
Merci de saisir votre adresse email nous vous renverons votre mot de passe personnel.
Mis à jour le 22 juillet 2026
La classe complète pour envoyer un SMS depuis Java avec java.net.http.HttpClient (standard depuis Java 11) : aucune dépendance Maven ou Gradle, un POST HTTPS et le code retour en réponse.
// Sms123.java — Envoi de SMS professionnel via l'API 123-SMS.net
// Copyright (C) 123-Sms.net — licence MIT
// Java 11 ou plus recent, aucune dependance (java.net.http standard).
//
// Compilation : javac Sms123.java
// Execution : java Sms123
// Identifiants : espace client https://www.123-sms.net > rubrique API.
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
public class Sms123 {
static final String IDENTIFIANT = "votre_identifiant";
static final String CLE_API = "CLEAPI";
static final String API_URL = "https://www.123-sms.net/http.php";
/** Envoie un SMS et renvoie le code retour de l'API (80 = envoye). */
public static String envoyerSms(String numero, String message) throws Exception {
String corps = "email=" + enc(IDENTIFIANT)
+ "&pass=" + enc(CLE_API)
+ "&numero=" + enc(numero)
+ "&message="+ enc(message);
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10)).build();
HttpRequest requete = HttpRequest.newBuilder(URI.create(API_URL))
.timeout(Duration.ofSeconds(15))
.header("Content-Type", "application/x-www-form-urlencoded")
.POST(HttpRequest.BodyPublishers.ofString(corps))
.build();
// POST en HTTPS : la cle API ne transite jamais en clair
return client.send(requete, HttpResponse.BodyHandlers.ofString())
.body().trim();
}
private static String enc(String s) {
return URLEncoder.encode(s, StandardCharsets.UTF_8);
}
public static void main(String[] args) throws Exception {
String code = envoyerSms("33601020304", "Bonjour, ceci est un test 123-SMS.");
switch (code) {
case "80": System.out.println("80 : le message a ete envoye."); break;
case "81": System.out.println("81 : enregistre pour un envoi differe."); break;
case "82": System.out.println("82 : identifiants invalides."); break;
case "83": System.out.println("83 : credit insuffisant."); break;
case "84": System.out.println("84 : numero invalide."); break;
default: System.out.println("Code retour API : " + code);
}
}
}Java 11 ou plus récent : la classe n'utilise que java.net.http, intégré au JDK. Aucun dépôt Maven/Gradle à configurer. Pour les environnements plus anciens (Java 8 et avant), l'exemple historique par sockets Java reste disponible.
Techniquement oui (API 33+ pour java.net.http, sinon OkHttp), mais ne placez jamais votre clé API dans une application distribuée au public : faites transiter l'envoi par votre serveur, sinon la clé peut être extraite de l'APK.
Déclarez la méthode dans un service et appelez-la depuis vos contrôleurs, schedulers ou listeners d'événements. Le client HTTP est thread-safe : instanciez-le une fois. Si vous êtes éditeur d'un logiciel Java, voir le partenariat éditeurs.
Le code retour est immédiat (80 = envoyé, 82 = identifiants invalides, 83 = crédit insuffisant…) et les accusés de réception peuvent être reçus par HTTP avec le paramètre refaccuse — détails dans la documentation technique.