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 fonction complète pour envoyer un SMS depuis Kotlin (JVM) avec le client HTTP standard du JDK : aucune dépendance, une expression when sur le code retour, prête pour vos services et vos batchs.
// Sms123.kt — Envoi de SMS professionnel via l'API 123-SMS.net
// Copyright (C) 123-Sms.net — licence MIT
// Kotlin (JVM), aucune dependance : java.net.http du JDK 11+.
//
// Execution : kotlinc Sms123.kt -include-runtime -d sms123.jar
// java -jar sms123.jar
// 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.time.Duration
const val IDENTIFIANT = "votre_identifiant"
const val CLE_API = "CLEAPI"
const val API_URL = "https://www.123-sms.net/http.php"
fun enc(s: String): String = URLEncoder.encode(s, Charsets.UTF_8)
/** Envoie un SMS et renvoie le code retour de l'API (80 = envoye). */
fun envoyerSms(numero: String, message: String): String {
val corps = "email=${enc(IDENTIFIANT)}&pass=${enc(CLE_API)}" +
"&numero=${enc(numero)}&message=${enc(message)}"
val client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10)).build()
val 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()
}
fun main() {
when (val code = envoyerSms("33601020304", "Bonjour, ceci est un test 123-SMS.")) {
"80" -> println("80 : le message a ete envoye.")
"81" -> println("81 : enregistre pour un envoi differe.")
"82" -> println("82 : identifiants invalides.")
"83" -> println("83 : credit insuffisant.")
"84" -> println("84 : numero invalide.")
else -> println("Code retour API : $code")
}
}Non : la fonction utilise java.net.http du JDK 11+, déjà présent dans tout projet Kotlin JVM. Pas de ktor, OkHttp ou Retrofit à installer pour un simple envoi de SMS.
L'appel est bloquant : encapsulez-le avec withContext(Dispatchers.IO) { envoyerSms(...) } pour ne pas bloquer le thread principal. Le client peut aussi être passé en sendAsync si vous préférez un CompletableFuture.
Même règle que pour tout code distribué au public : n'embarquez pas la clé API dans l'APK. Faites appeler votre propre serveur, qui relève l'API 123-SMS — par exemple avec l'exemple Java ou Node.js côté backend.
URLEncoder.encode (appelé par la fonction enc) gère tout l'encodage. Un SMS standard contient 160 caractères GSM — détails sur la page nombre de caractères d'un SMS.