SMS-Versand mit PHP: Überblick über API-Bibliotheken und Integrationsbeispiele
Das Versenden von SMS-Nachrichten bleibt eine gefragte Funktion für Webanwendungen: Zwei-Faktor-Authentifizierung, Bestellbenachrichtigungen, Marketingkampagnen. In PHP wird diese Aufgabe über die API externer Dienste gelöst. In diesem Artikel betrachten wir gängige Bibliotheken, Möglichkeiten ihrer Einbindung und zeigen funktionierende Codebeispiele.
1. Gängige Dienste und ihre PHP-Bibliotheken
Die Wahl des Anbieters hängt von der Region, den Kosten und den Anforderungen an die Zustellung ab. Wir betrachten drei Optionen:
- Twilio — internationaler Marktführer, stellt ein SDK für PHP bereit (twilio/sdk). Geeignet für globale Projekte.
- SMS Aero — russischer Dienst mit einfacher REST API und offizieller PHP-Bibliothek.
- smsc.ru — ein weiterer beliebter inländischer Dienst mit niedrigen Tarifen und fertigen Skripten.
2. Installation über Composer
Die meisten modernen Bibliotheken werden über Composer installiert. Beispiel für Twilio:
composer require twilio/sdkFür SMS Aero verwenden Sie:
composer require smsaero/smsaero-phpWenn Sie smsc.ru verwenden, können Sie auf Composer verzichten — kopieren Sie einfach deren PHP-Klasse von GitHub.
3. Beispiel für den SMS-Versand über Twilio
Die Twilio-Bibliothek benötigt Account SID und Auth Token, die Sie in Ihrem Konto erhalten.
<?phprequire_once 'vendor/autoload.php';
use Twilio\\Rest\\Client;
// Ihre Daten$sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";$token = "your_auth_token";$twilio = new Client($sid, $token);
// SMS senden$message = $twilio->messages ->create( "+71234567890", // Empfängernummer [ "from" => "+15017122661", // Absendernummer (bei Twilio gekauft) "body" => "Hallo! Dies ist eine Test-SMS von Twilio." ] );
echo "Nachricht gesendet! SID: " . $message->sid;?>4. SMS-Versand über SMS Aero (REST API)
SMS Aero verwendet API-Schlüssel und Login. Die Bibliothek bietet eine benutzerfreundliche Oberfläche:
<?phprequire_once 'vendor/autoload.php';
use Smsaero\\Smsaero;
$client = new Smsaero('your_email@example.com', 'your_api_key');
// Nachricht senden$response = $client->send('71234567890', 'Testnachricht von SMS Aero');
if ($response->success) { echo "SMS gesendet. ID: " . $response->id;} else { echo "Fehler: " . $response->error;}?>5. Arbeiten mit smsc.ru (ohne Composer)
Für smsc.ru können Sie direkte HTTP-Anfragen oder deren vorgefertigte Klasse verwenden. Einfaches Beispiel über cURL:
<?php$login = "your_login";$password = "your_password";$phones = "71234567890";$message = "Hallo von smsc.ru!";
$url = "https://smsc.ru/sys/send.php?login=" . urlencode($login) . "&psw=" . urlencode($password) . "&phones=" . urlencode($phones) . "&mes=" . urlencode($message) . "&fmt=3"; // fmt=3 — Antwort im JSON-Format
$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$response = curl_exec($ch);curl_close($ch);
$data = json_decode($response, true);if ($data['error'] ?? false) { echo "Fehler: " . $data['error'];} else { echo "SMS gesendet. ID: " . $data['id'];}?>6. Fehlerbehandlung und Protokollierung
Beim SMS-Versand ist es wichtig, Fehler korrekt zu behandeln. Typische Probleme:
- Falsche Anmeldedaten (401 Unauthorized).
- Nicht ausreichendes Guthaben.
- Nummer auf der schwarzen Liste.
- Überschreitung der Sende-Limits.
Beispiel für die Ausnahmebehandlung bei Twilio:
<?phptry { $message = $twilio->messages->create(...); // Erfolgsprotokollierung error_log("SMS gesendet: " . $message-&g Auch in der Bibliothek
Konfiguration von Go-Anwendungen: Die Bibliothek viper
Datenvalidierung in Swift (iOS/macOS): Werkzeuge und Praxis
Maschinelles Lernen mit Kotlin: Überblick über Bibliotheken für Data Science und ML
Polly für C# (.NET): Komplettleitfaden mit Beispielen