Bibliothèques clientes
Bibliothèques clientes officielles
Duva publie et maintient une bibliothèque pour Node.js, une pour Python, une pour Ruby, une pour Go et une pour PHP : envoi, événements, suppressions, webhooks et statistiques, avec les mêmes réessais et la même gestion d'erreurs que l'API.
Langages couverts
-
Node.js
Pris en charge et sans dépendance obligatoire. Écrit en TypeScript, publié en ESM et en CommonJS.
npm install duva-mailimport { Duva } from "duva-mail";https://www.npmjs.com/package/duva-mail · https://github.com/duva-mail/duva-node
-
Python
Client synchrone et asynchrone, entièrement typé (`mypy --strict`, `py.typed`).
pip install duva-mailfrom duva import Duvahttps://pypi.org/project/duva-mail/ · https://github.com/duva-mail/duva-python
-
Ruby
Sans dépendance de gemme (`Net::HTTP`), objets valeur immuables (Ruby 3.2 ou plus).
gem install duva-mailrequire "duva"https://rubygems.org/gems/duva-mail · https://github.com/duva-mail/duva-ruby
-
Go
Sans dépendance externe (`net/http`), pagination par `iter.Seq2` (Go 1.23 ou plus).
go get github.com/duva-mail/duva-goimport "github.com/duva-mail/duva-go"https://pkg.go.dev/github.com/duva-mail/duva-go · https://github.com/duva-mail/duva-go
-
PHP
PSR-18 (Guzzle par défaut, injectable), objets valeur `readonly` (PHP 8.2 ou plus).
composer require duva-mail/duvause Duva\Client;https://packagist.org/packages/duva-mail/duva · https://github.com/duva-mail/duva-php
Code source ouvert (licence MIT) ; chaque bibliothèque est testée contre la même suite de conformité que le serveur.
Plugin WordPress
Duva Mail envoie tous les courriels de votre site WordPress (commandes WooCommerce, formulaires de contact, réinitialisations de mot de passe) par l'API de Duva : il remplace le transport de wp_mail(), sans rien changer d'autre à votre site.
- Compatible avec tout ce qui envoie par
wp_mail(): To, Cc, Bcc, noms, pièces jointes et en-têtes courants. - Aucun repli silencieux : si Duva ne peut pas prendre un courriel, l'échec est renvoyé à WordPress et affiché dans les réglages du plugin.
- Réessais sûrs grâce à une clé d'idempotence : un délai de réseau ne crée jamais de doublon.
- La clé API peut rester hors de la base de données, dans
wp-config.php(DUVA_MAIL_API_KEY). Aucune télémétrie.
Il faut un compte Duva avec un domaine vérifié et une clé API créée pour ce domaine. Installation : Extensions, Ajouter, chercher « Duva Mail », activer, puis Réglages, Duva Mail. Nécessite WordPress 5.9 ou plus et PHP 7.4 ou plus.
L'interface du plugin est en anglais pour l'instant ; la traduction française est en cours de validation.
Intégrations
Pour envoyer par Duva sans écrire d'appel d'API : ces paquets branchent Duva sur le système de courriel de votre cadriciel.
-
Laravel
Transport de courriel pour Laravel 12 et 13 : Mailables et notifications partent par l'API, avec étiquettes, métadonnées, pièces jointes, Cc et Bcc, et le repli (`failover`) de Laravel.
composer require duva-mail/laravelMAIL_MAILER=duvahttps://packagist.org/packages/duva-mail/laravel · https://github.com/duva-mail/duva-laravel
-
Django
Moteur de courriel pour Django 5.2 et plus (réglage `MAILERS` de Django 6.1 compris) : `send_mail()` et `EmailMessage` partent par l'API, avec pièces jointes, Cc et Bcc.
pip install duva-djangoEMAIL_BACKEND = "duva_django.EmailBackend"https://pypi.org/project/duva-django/ · https://github.com/duva-mail/duva-django
-
n8n
Nœud communautaire pour n8n : envoi de courriels (pièces jointes, Cc et Bcc, clé d'idempotence), lecture des événements de livraison et gestion de la liste de suppression.
npm install n8n-nodes-duvan8n: Settings > Community nodes > n8n-nodes-duvahttps://www.npmjs.com/package/n8n-nodes-duva · https://github.com/duva-mail/duva-n8n
-
Rails
Méthode de livraison Action Mailer pour Rails 7.2 et plus : mailers, `deliver_later` et Devise partent par l'API, avec pièces jointes, Cc et Bcc, étiquettes et métadonnées.
bundle add duva-railsconfig.action_mailer.delivery_method = :duvahttps://rubygems.org/gems/duva-rails · https://github.com/duva-mail/duva-rails
-
Nodemailer
Transport Nodemailer pour Node.js 22 et plus : `sendMail()` part par l'API, avec pièces jointes, Cc et Bcc, étiquettes, métadonnées et clé d'idempotence.
npm install nodemailer-duvanodemailer.createTransport(duvaTransport({ domain: "example.com" }))https://www.npmjs.com/package/nodemailer-duva · https://github.com/duva-mail/duva-nodemailer
-
Symfony
Transport Symfony Mailer pour Symfony 6.4, 7 et 8 : `MailerInterface` et Messenger envoient par l'API, avec pièces jointes, Cc et Bcc, étiquettes et métadonnées.
composer require duva-mail/symfony-mailerMAILER_DSN=duva://KEY@default?domain=example.comhttps://packagist.org/packages/duva-mail/symfony-mailer · https://github.com/duva-mail/duva-symfony
Un autre langage
Aucune bibliothèque officielle n'est requise pour utiliser Duva : l'API est un simple `POST` JSON. La spécification OpenAPI permet d'en générer un client complet dans le langage de votre choix, et la référence de l'API donne des exemples exécutés en Node.js, Python, PHP, Go et Ruby.