Cómo enviar correos con Rust

Envía correos desde Rust con `reqwest` (async) y `serde_json`.

No hay SDK oficial — llama a la API REST de Publiq con el cliente HTTP del lenguaje, desde el servidor, con la API key en el header Authorization.

use reqwest::Client;
use serde_json::json;

async fn send_welcome(to: &str) -> reqwest::Result<()> {
    let client = Client::new();
    client
        .post("https://api.publiq.digital/v1/emails")
        .bearer_auth(std::env::var("PUBLIQ_API_KEY").unwrap())
        .json(&json!({
            "from": "you@yourdomain.com",
            "to": to,
            "templateKey": "welcome-email",
            "variables": { "first_name": "Ana" }
        }))
        .send()
        .await?;
    Ok(())
}

Buenas prácticas

  • Llama a Publiq siempre desde el servidor — nunca expongas la API key en el cliente.
  • Crea la instancia del cliente una vez y reutilízala entre peticiones.
  • Prefiere templateKey sobre HTML inline para mantener el contenido versionado.
  • Maneja PubliqError (status/code); el SDK ya reintenta errores transitorios con backoff.
  • Envía desde un dominio verificado — ver Dominios.

Ver también

Cómo enviar correos con Rust — Publiq Docs