infobip-sms-sdk 0.1.0

Async Rust SDK for the Infobip SMS API: send messages, manage scheduled bulks, query delivery reports and logs, fetch inbound SMS, and parse webhook payloads.
Documentation
//! cargo run --example send_basic
//!
//! Set INFOBIP_BASE_URL and INFOBIP_API_KEY in your environment first.

use infobip_sms::models::send::{
    SmsMessage, SmsMessageContent, SmsRequest, SmsTextMessageContent, SmsToDestination,
};
use infobip_sms::{Auth, Client};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let base_url = std::env::var("INFOBIP_BASE_URL")?;
    let api_key = std::env::var("INFOBIP_API_KEY")?;
    let to = std::env::var("INFOBIP_TO").unwrap_or_else(|_| "41793026727".into());

    let client = Client::builder()
        .base_url(base_url)
        .auth(Auth::api_key(api_key))
        .build()?;

    let request = SmsRequest {
        messages: vec![SmsMessage {
            sender: Some("InfoSMS".into()),
            destinations: vec![SmsToDestination {
                to,
                ..Default::default()
            }],
            content: SmsMessageContent::Text(SmsTextMessageContent {
                text: "Hello from the Rust SDK!".into(),
                ..Default::default()
            }),
            ..Default::default()
        }],
        options: None,
    };

    let response = client.send_messages(&request).await?;
    println!("{response:#?}");

    Ok(())
}