Como enviar e-mails com Rust

Envie e-mails do Rust com `reqwest` (async) e `serde_json`.

Não há SDK oficial — chame a API REST do Publiq com o cliente HTTP da linguagem, a partir do servidor, com a API key no 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(())
}

Boas práticas

  • Chame o Publiq sempre do servidor — nunca exponha a API key no cliente.
  • Crie a instância do cliente uma vez e reutilize-a entre requisições.
  • Prefira templateKey a HTML inline para manter o conteúdo versionado.
  • Trate PubliqError (status/code); o SDK já retenta erros temporários com backoff.
  • Envie de um domínio verificado — veja Domínios.

Veja também

Como enviar e-mails com Rust — Publiq Docs