SMS-Versand mit Rust: Überblick über API-Bibliotheken

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

SMS-Versand mit Rust: Überblick über API und Bibliotheken

Rust ist eine moderne systemnahe Programmiersprache, die hohe Leistung mit Speichersicherheit kombiniert. Obwohl das Rust-Ökosystem jünger ist als das von Python oder JavaScript, enthält es bereits alle notwendigen Werkzeuge für die Integration mit SMS-Diensten. In diesem Artikel betrachten wir, wie man SMS-Nachrichten aus Rust-Anwendungen mit gängigen APIs und Bibliotheken versendet.



Grundlegende Ansätze zum SMS-Versand

Es gibt zwei Hauptwege, SMS aus Rust zu versenden:

  • Verwendung eines HTTP-Clients — direkter Aufruf der REST-API des SMS-Anbieters (Twilio, Vonage, SMS-Center usw.)
  • Verwendung spezialisierter Crates — fertige Bibliotheken, die die API des Anbieters in eine benutzerfreundliche Rust-Schnittstelle verpacken


Variante 1: SMS-Versand über die Twilio-API

Twilio ist einer der beliebtesten Dienste zum Versenden von SMS. Für die Arbeit damit benötigen Sie reqwest (HTTP-Client) und serde (Serialisierung/Deserialisierung von JSON).



// Cargo.toml[dependencies]reqwest = { version = "0.12", features = ["json"] }serde = { version = "1.0", features = ["derive"] }serde_json = "1.0"tokio = { version = "1", features = ["full"] }

// main.rsuse reqwest::Client;use serde::{Deserialize, Serialize};

#[derive(Serialize)]struct TwilioSmsRequest { To: String, From: String, Body: String,}

#[derive(Deserialize, Debug)]struct TwilioSmsResponse { sid: String, status: String,}

#[tokio::main]async fn main() -> Result<(), Box<dyn std::error::Error>> { let account_sid = "YOUR_TWILIO_ACCOUNT_SID"; let auth_token = "YOUR_TWILIO_AUTH_TOKEN"; let from_number = "+1234567890"; // Bei Twilio gekaufte Nummer let to_number = "+0987654321";

let client = Client::new(); let url = format!("https://api.twilio.com/2010-04-01/Accounts/{}/Messages.json", account_sid);

let request_body = TwilioSmsRequest { To: to_number.to_string(), From: from_number.to_string(), Body: "Hallo aus Rust!".to_string(), };

let response = client .post(&url) .basic_auth(account_sid, Some(auth_token)) .form(&request_body) .send() .await?;

let sms_response: TwilioSmsResponse = response.json().await?; println!("SMS gesendet! SID: {}, Status: {}", sms_response.sid, sms_response.status);

Ok(())}


Variante 2: Verwendung der Crate twilio

Für eine komfortablere Arbeit mit Twilio gibt es die spezialisierte Crate twilio. Sie bietet eine typisierte API und verarbeitet die Authentifizierung automatisch.



// Cargo.toml[dependencies]twilio = "0.5"tokio = { version = "1", features = ["full"] }

// main.rsuse twilio::Client;

#[tokio::main]async fn main() -> Result<(), Box<dyn std::error::Error>> { let client = Client::new( "YOUR_TWILIO_ACCOUNT_SID", "YOUR_TWILIO_AUTH_TOKEN" );

let message = client .send_message("+1234567890", "+0987654321", "Hello from Rust!") .await?;

println!("Nachricht gesendet! SID: {}", message.sid); Ok(())}


Variante 3: SMS-Versand über Vonage (Nexmo)

Vonage (ehemals Nexmo) ist ein weiterer beliebter Anbieter. Für die Arbeit damit kann die Crate vonage verwendet werden.



// Cargo.toml[dependencies]vonage = "0.2"tokio = { version = "1", features = ["full"] }

// main.rsuse vonage::VonageClient;

#[tokio::main]async fn main() -> Result<(), Box<dyn std::error::Error>> { let client = VonageClient::new( "YOUR_VONAGE_API_KEY", "YOUR_VONAGE_API_SECRET" );

let response = client .send_sms("VonageAPI", "79001234567", "Hallo aus Rust!")

Empfehlungen