SDK Rust

Le crate spore-email fournit un client asynchrone basé sur Reqwest et des modèles Serde générés depuis le contrat OpenAPI de Spore.

Installation

cargo add spore-email

Configuration

use spore_email::apis::configuration::Configuration;
 
let mut configuration = Configuration::new();
configuration.bearer_access_token = Some(std::env::var("SPORE_API_KEY")?);

L’URL https://api.sporee.fr est configurée par défaut. Pour une instance locale, modifiez configuration.base_path.

Envoyer un email

use spore_email::{
    apis::messaging_api::{send_email, SendEmailParams},
    models::SendEmailSendEmailRequest,
};
 
let mut message = SendEmailSendEmailRequest::new();
message.from = Some("hello@votredomaine.fr".into());
message.to = Some(vec!["alex@example.com".into()]);
message.subject = Some("Bienvenue".into());
message.html = Some("<p>Votre compte est prêt.</p>".into());
 
let result = send_email(&configuration, SendEmailParams {
    request: message,
    idempotency_key: Some("welcome-user-42".into()),
}).await?;

La clé d’idempotence doit rester identique lors des retries. Un identifiant de commande, de paiement ou de job est souvent plus sûr qu’un UUID recréé à chaque tentative.

TLS

Le crate active Rustls par défaut et ne dépend donc pas d’OpenSSL sur la machine. Pour utiliser le magasin de certificats natif du système :

spore-email = { version = "0.1", default-features = false, features = ["native-tls"] }

Aller plus loin