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

Versenden von SMS-Nachrichten mit PHP

Zuletzt aktualisiert am January 29, 2024

Lesedauer: 3 Minuten

Dieser Artikel wurde im August 2025 aktualisiert.

In diesem Tutorial werden wir SMS-Nachrichten mit so wenigen PHP-Zeilen wie möglich versenden. Erstens mit einem Rohskript und zweitens mit einem minimalen Webanwendungs-Framework.

Voraussetzungen

  • PHP 8.1+

  • Composerfür die Paketverwaltung

  • Ein Vonage API-Konto

Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto.

Vonage API-Konto

Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.

Wie man Text mit Raw PHP sendet

Wir beginnen mit der Erstellung eines neuen Composer-Projekts und der Einbindung des Vonage PHP SDK. Fügen Sie über die Befehlszeile Folgendes hinzu:

mkdir vonage-sms
cd vonage-sms
composer init

Composer wird Ihnen eine Reihe von Fragen stellen - Sie können diese alle auf den Standardwerten belassen, da wir nur das absolute Minimum an Aufwand betreiben. Der Prozess sollte Ihre composer.json Datei erstellen. Jetzt können wir das Vonage PHP SDK hinzufügen:

composer require vonage/client

Jetzt erstellen wir unser Skript.

touch send-sms.php

Öffnen Sie die neue PHP-Datei und vergewissern Sie sich, dass das Autoload von Composer aktiviert ist:

<?php

require_once './vendor/autoload.php';

Um eine SMS zu versenden, benötigen wir drei Dinge:

  • Eine Reihe von Anmeldedaten aus dem Vonage Dashboard

  • Ein Client-Objekt

  • Ein Text zum Senden

In diesem Fall sind die letzten Zeilen des Codes wie folgt:

$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);

Fügen Sie die erforderlichen Angaben in die Platzhalter für konstante Variablen ein und klicken Sie auf Senden:

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

Vier Zeilen Code sind ziemlich gut! Der zweite Teil besteht darin, dies in ein grundlegendes Web-Framework einzubinden, so dass Sie eine Nachricht POSTEN können, anstatt sie hart zu kodieren, wie wir es oben getan haben.

Wie sende ich SMS über. Schlankes Framework

Für das zweite Beispiel werden wir das Slim-Frameworkverwenden, also installieren Sie es mit Composer:

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

Der zweite Befehl hier installiert die PSR-7-Implementierung (Request Interface) von Slim. Wir werden eine Route erstellen, die eine POST-Anfrage mit einem JSON-Body, der einen Text enthält, annimmt.

Hier ist die geänderte send-sms.php Datei:

<?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();

Anstatt diesen Code auszuführen, verwenden wir zum Mocking eine Webplattform. Wir werden also den in PHP integrierten Webserver verwenden, um eine Entwicklungsumgebung von der Befehlszeile aus zu starten:

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

Um die Nachricht zu senden, benötigen Sie einen HTTP-Tooling-Client, der das Senden von POST-Anfragen erleichtert. Insomnia aber Sie könnten auch Postman oder sogar eine einfache cURL-Anfrage verwenden.

Screenshot of Insomnia sending a POST requestAPI Tooling is super helpful

Schlussfolgerung

Jetzt haben wir eine Route, über die Sie den Nachrichtentext an einen Server senden können, damit dieser den Vorgang abschließt. Sie können natürlich zusätzliche Schlüssel zur JSON-Nutzlast hinzufügen, um die Absender- und Empfängerzellennummern hinzuzufügen. Haben Sie Lust, etwas daraus zu machen? Sehen Sie sich unsere Laravel-Integration oder lesen Sie weiter über das Senden von Nachrichten mit dieser API in Symfony.

Haben Sie Fragen oder Anmerkungen? Treten Sie unserer florierenden Entwickler-Community auf Slackoder folgen Sie uns auf X (früher Twitter), oder abonnieren Sie unseren Entwickler-Newsletter. Bleiben Sie mit uns in Verbindung, teilen Sie Ihre Fortschritte mit uns und halten Sie sich über die neuesten Nachrichten, Tipps und Veranstaltungen für Entwickler auf dem Laufenden!

Zusätzliche Ressourcen

SMS-Versand aus PHP mit Failover: Die Cupcake-Bäckerei

Typsicherheit richtig gemacht - PHP Array Hacking

Scrub Up! Reinigung Ihrer PHP-Anwendung mit PHPStan

Vonage PHP SDK

Teilen Sie:

https://a.storyblok.com/f/270183/400x385/12b3020c69/james-seconde.png
James SecondeSenior PHP Entwickler Advocate

Als ausgebildeter Schauspieler mit einer Dissertation in Standup-Comedy bin ich über die Meetup-Szene zur PHP-Entwicklung gekommen. Man findet mich, wenn ich über Technik spreche oder schreibe, oder wenn ich seltsame Platten aus meiner Vinylsammlung spiele oder kaufe.