https://d226lax1qjow5r.cloudfront.net/blog/blogposts/sending-sms-messages-with-php/sms-messages_php.png

Envoi de SMS avec PHP

Publié le January 29, 2024

Temps de lecture : 3 minutes

Cet article a été mis à jour en août 2025

Dans ce tutoriel, nous allons envoyer des SMS avec le moins de lignes de PHP possible. D'une part, avec un script brut, et d'autre part en utilisant un framework d'application web minimal.

Conditions préalables

  • PHP 8.1+

  • Composerpour la gestion des paquets

  • Un Account API de Vonage

Pour réaliser ce tutoriel, vous aurez besoin d'un Account API Vonage.

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

Comment envoyer du texte avec Raw PHP

Nous allons commencer par créer un nouveau projet Composer et y intégrer le SDK PHP de Vonage. En utilisant la ligne de commande, ajoutez ce qui suit :

mkdir vonage-sms
cd vonage-sms
composer init

Composer vous posera une série de questions - vous pouvez les laisser par défaut car nous ne faisons que le strict minimum. Le processus devrait créer votre fichier composer.json fichier. Nous pouvons maintenant ajouter le SDK PHP de Vonage :

composer require vonage/client

Maintenant, créons notre script.

touch send-sms.php

Ouvrez le nouveau fichier PHP et assurez-vous que l'autoload de Composer est activé :

<?php

require_once './vendor/autoload.php';

Pour envoyer un SMS, nous avons besoin de trois éléments :

  • Un ensemble d'informations d'identification extraites du tableau de bord de Vonage

  • Un objet client

  • Un texte à envoyer

Compte tenu de ce qui précède, voici les dernières lignes de code :

$credentials = new \Vonage\Client\Credentials\Basic(YOUR_API_KEY, YOUR_API_SECRET);
$client = new Vonage\Client($credentials);
$message = new Vonage\Messages\Channel\SMS\SMSText(
  YOUR_NUMBER,
  'Vonage',
  'Hello from Vonage!'
);

$client->messages()->send($message);

Insérez les informations requises dans les variables constantes et cliquez sur "Envoyer" :

Screenshot of a phone device showing the recieved SMSOur SMS has been sent!

Quatre lignes de code, c'est déjà pas mal ! La deuxième partie consiste à intégrer ce système dans un cadre web de base afin de pouvoir POSTER un message au lieu de le coder en dur comme nous l'avons fait ci-dessus.

Comment envoyer des SMS via . Slim Framework

Pour le deuxième exemple, nous allons utiliser le Slim FrameworkNous allons donc l'installer avec Composer :

composer require slim/slim:"4".*
composer require slim/psr7

La deuxième commande installe l'implémentation PSR-7 (Request Interface) de Slim. Nous allons créer une route qui prend une requête POST avec un corps JSON contenant du texte.

Voici le fichier modifié send-sms.php modifié :

<?php

use Slim\Psr7\Request;
use Slim\Psr7\Response;

require_once '../vendor/autoload.php';

$app = \Slim\Factory\AppFactory::create();

$app->post('/send', function (Request $request, Response $response) {
   $rawBody = $request->getBody()->getContents();
   $requestData = json_decode($rawBody);
   $text = $requestData->text;

   $credentials = new \Vonage\Client\Credentials\Basic('232130c9', 's09IJad98fa0t9j09ad8fa90s');
   $client = new Vonage\Client($credentials);
   $message = new Vonage\Messages\Channel\SMS\SMSText(
     YOUR_NUMBER,
     'Vonage',
     $text
);

   $client->messages()->send($message);

   $response->getBody()->write("Vonage sent this text!");
   return $response;
});

$app->run();

Au lieu d'exécuter ce code, nous allons utiliser une plateforme web, donc nous allons utiliser le serveur web intégré de PHP pour lancer un environnement de développement à partir de la ligne de commande :

php -S localhost:8888 -t send-php.php

Pour envoyer le message, vous aurez besoin d'un client HTTP qui facilite l'envoi de requêtes POST - j'ai opté pour le client Kong's Insomnia mais vous pouvez également utiliser Postman ou même une requête cURL brute.

Screenshot of Insomnia sending a POST requestAPI Tooling is super helpful

Conclusion

Nous disposons à présent d'une route permettant d'envoyer le texte du message à un serveur pour qu'il termine le processus. Vous pouvez, bien sûr, ajouter des clés supplémentaires à la charge utile JSON pour ajouter les numéros de téléphone cellulaire de et à. Vous avez envie de construire quelque chose à partir de cela ? Jetez un coup d'œil à notre intégration Laravel ou lisez la suite sur l'envoi de messages avec cette API dans Symfony.

Vous avez une question ou souhaitez partager ce que vous construisez ?

Restez connecté et tenez-vous au courant des dernières nouvelles, astuces et événements concernant les développeurs.

Ressources complémentaires

Envoi de SMS depuis PHP avec basculement : La boulangerie Cupcake

Type Safety Done Right - PHP Array Hacking (en anglais)

Nettoyer ! Nettoyer votre application PHP avec PHPStan

SDK PHP de Vonage

Partager:

https://a.storyblok.com/f/270183/400x385/12b3020c69/james-seconde.png
James SecondeDéveloppeur PHP senior Advocate

Acteur de formation avec une thèse sur la comédie, je suis venu au développement PHP par le biais de la scène des rencontres. Vous pouvez me trouver en train de parler et d'écrire sur la technologie, ou de jouer/acheter des disques bizarres de ma collection de vinyles.