API Email
Bibliothèques
Pour l'instant, nous n'avons pas encore publié de wrappers API, mais nous prévoyons de le faire prochainement. Envoyez un email à api@forwardemail.net si vous souhaitez être informé de la sortie d'un wrapper API pour un langage de programmation particulier. En attendant, vous pouvez utiliser ces bibliothèques HTTP recommandées dans votre application, ou simplement utiliser curl comme dans les exemples ci-dessous.
| Langage | Bibliothèque |
|---|---|
| Ruby | Faraday |
| Python | requests |
| Java | OkHttp |
| PHP | guzzle |
| JavaScript | superagent (nous sommes mainteneurs) |
| Node.js | superagent (nous sommes mainteneurs) |
| Go | net/http |
| .NET | RestSharp |
URI de base
Le chemin URI de base HTTP actuel est : https://fe.tiamati.email.
Authentification
Tous les points de terminaison nécessitent une authentification utilisant l’authentification basique. Nous supportons deux méthodes d’authentification :
Authentification par jeton API (recommandée pour la plupart des points de terminaison)
Définissez votre clé API comme valeur "nom d’utilisateur" avec un mot de passe vide :
curl https://fe.tiamati.email/v1/account \
-u API_TOKEN:
Notez les deux-points (:) après le jeton API – cela indique un mot de passe vide au format Auth basique.
Authentification par identifiants d’alias (pour les emails sortants)
Le point de terminaison Créer un email SMTP sortant supporte également l’authentification en utilisant votre adresse email alias et un mot de passe alias généré :
curl -X POST https://fe.tiamati.email/v1/emails \
-u "alias@yourdomain.com:your_generated_password" \
-d "to=recipient@example.com" \
-d "subject=Bonjour" \
-d "text=Email de test"
Cette méthode est utile lors de l’envoi d’emails depuis des applications qui utilisent déjà des identifiants SMTP et facilite la migration de SMTP vers notre API.
Points de terminaison réservés aux alias
Les points de terminaison Contacts alias, Calendriers alias, Messages alias et Dossiers alias requièrent des identifiants alias et ne supportent pas l’authentification par jeton API.
Ne vous inquiétez pas – des exemples sont fournis ci-dessous si vous ne savez pas ce que c’est.
Erreurs
Si des erreurs surviennent, le corps de la réponse de la requête API contiendra un message d’erreur détaillé.
| Code | Nom |
|---|---|
| 200 | OK |
| 400 | Mauvaise requête |
| 401 | Non autorisé |
| 403 | Interdit |
| 404 | Non trouvé |
| 429 | Trop de requêtes |
| 500 | Erreur interne serveur |
| 501 | Non implémenté |
| 502 | Mauvaise passerelle |
| 503 | Service indisponible |
| 504 | Délai de passerelle dépassé |
Tip
Si vous recevez un code d’état 5xx (ce qui ne devrait pas arriver), veuillez nous contacter à api@forwardemail.net et nous vous aiderons à résoudre votre problème immédiatement.
Localisation
Notre service est traduit en plus de 25 langues différentes. Tous les messages de réponse API sont traduits dans la dernière locale détectée de l’utilisateur effectuant la requête API. Vous pouvez outrepasser cela en passant un en-tête Accept-Language personnalisé. N’hésitez pas à l’essayer en utilisant le menu déroulant de langue en bas de cette page.
Pagination
Note
À partir du 1er novembre 2024, les points de terminaison API pour Lister les domaines et Lister les alias de domaine auront par défaut 1000 résultats max par page. Si vous souhaitez adopter ce comportement plus tôt, vous pouvez passer ?paginate=true comme paramètre de chaîne de requête supplémentaire à l’URL du point de terminaison.
La pagination est supportée par tous les points de terminaison API qui listent des résultats.
Il suffit de fournir les propriétés de chaîne de requête page (et éventuellement limit).
La propriété page doit être un nombre supérieur ou égal à 1. Si vous fournissez limit (également un nombre), la valeur minimale est 10 et la maximale est 50 (sauf indication contraire).
| Paramètre de chaîne de requête | Obligatoire | Type | Description |
|---|---|---|---|
page |
Non | Nombre | Page de résultats à retourner. Si non spécifié, la valeur page sera 1. Doit être un nombre supérieur ou égal à 1. |
limit |
Non | Nombre | Nombre de résultats à retourner par page. Par défaut 10 si non spécifié. Doit être un nombre supérieur ou égal à 1, et inférieur ou égal à 50. |
| Afin de déterminer si d'autres résultats sont disponibles ou non, nous fournissons ces en-têtes de réponse HTTP (que vous pouvez analyser pour paginer de manière programmatique) : |
| HTTP Response Header | Exemple | Description |
|---|---|---|
X-Page-Count |
X-Page-Count: 3 |
Le nombre total de pages disponibles. |
X-Page-Current |
X-Page-Current: 1 |
La page actuelle des résultats retournés (par exemple basée sur le paramètre de chaîne de requête page). |
X-Page-Size |
X-Page-Size: 10 |
Le nombre total de résultats dans la page retournée (par exemple basé sur le paramètre de chaîne de requête limit et les résultats effectivement retournés). |
X-Item-Count |
X-Item-Count: 30 |
Le nombre total d'éléments disponibles sur toutes les pages. |
Link |
Link: <https://api.forwardemail.net/v1/emails?page=1>; rel="prev", <https://api.forwardemail.net/v1/emails?page=3>; rel="next", <https://api.forwardemail.net/v1/emails?page=3; rel="last", https://api.forwardemail.net/v1/emails?page=1; rel="first" |
Nous fournissons un en-tête de réponse HTTP Link que vous pouvez analyser comme montré dans l'exemple. Ceci est similaire à GitHub (par exemple, toutes les valeurs ne seront pas fournies si elles ne sont pas pertinentes ou disponibles, par ex. "next" ne sera pas fourni s'il n'y a pas une autre page). |
Exemple de requête :
curl https://fe.tiamati.email/v1/domains/example.com/aliases?page=2&pagination=true \
-u API_TOKEN:
Journaux
Récupérer les journaux
Notre API vous permet de télécharger programmatiquement les journaux de votre compte. Soumettre une requête à ce point de terminaison traitera tous les journaux de votre compte et vous les enverra par email en pièce jointe (fichier tableur CSV compressé Gzip) une fois terminé.
Cela vous permet de créer des tâches en arrière-plan avec un Cron job ou en utilisant notre logiciel de planification de tâches Node.js Bree pour recevoir les journaux quand vous le souhaitez. Notez que ce point de terminaison est limité à 10 requêtes par jour.
La pièce jointe porte le nom en minuscules email-deliverability-logs-YYYY-MM-DD-h-mm-A-z.csv.gz et l’email contient un bref résumé des journaux récupérés. Vous pouvez également télécharger les journaux à tout moment depuis Mon Compte → Journaux
GET /v1/logs/download
| Paramètre Querystring | Obligatoire | Type | Description |
|---|---|---|---|
domain |
Non | String (FQDN) | Filtrer les journaux par nom de domaine pleinement qualifié ("FQDN"). Si vous ne fournissez pas ce paramètre, tous les journaux de tous les domaines seront récupérés. |
q |
Non | String | Rechercher des journaux par email, domaine, nom d’alias, adresse IP ou date (formats M/Y, M/D/YY, M-D, M-D-YY ou M.D.YY). |
bounce_category |
Non | String | Rechercher des journaux par catégorie de rebond spécifique (ex. blocklist). |
response_code |
Non | Number | Rechercher des journaux par code de réponse d’erreur spécifique (ex. 421 ou 550). |
Exemple de requête :
curl https://fe.tiamati.email/v1/logs/download \
-u API_TOKEN:
Exemple de Cron job (à minuit chaque jour) :
0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download -u API_TOKEN: &>/dev/null
Notez que vous pouvez utiliser des services tels que Crontab.guru pour valider la syntaxe de votre expression cron.
Exemple de Cron job (à minuit chaque jour et avec les journaux du jour précédent) :
Pour MacOS :
0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download?q=`date -v-1d -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null
Pour Linux et Ubuntu :
0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download?q=`date --date "-1 days" -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null
Compte
Créer un compte
POST /v1/account
| Paramètre Body | Obligatoire | Type | Description |
|---|---|---|---|
email |
Oui | String (Email) | Adresse email |
password |
Oui | String | Mot de passe |
Exemple de requête :
curl -X POST https://fe.tiamati.email/v1/account \
-u API_TOKEN: \
-d "email=user%40gmail.com"
Récupérer un compte
GET /v1/account
Exemple de requête :
curl https://fe.tiamati.email/v1/account \
-u API_TOKEN:
Mettre à jour un compte
PUT /v1/account
| Paramètre Body | Obligatoire | Type | Description |
|---|---|---|---|
email |
Non | String (Email) | Adresse email |
given_name |
Non | String | Prénom |
family_name |
Non | String | Nom de famille |
avatar_url |
Non | String (URL) | Lien vers l’image d’avatar |
Exemple de requête :
curl -X PUT https://fe.tiamati.email/v1/account \
-u API_TOKEN: \
-d "email=user%40gmail.com"
Contacts Alias (CardDAV)
Note
Contrairement aux autres points de terminaison de l’API, ceux-ci requièrent que l’Authentification utilise comme "nom d’utilisateur" le nom d’utilisateur de l’alias et comme "mot de passe" le mot de passe généré de l’alias en tant qu’en-têtes d’Autorisation Basic. [!WARNING] Cette section des points de terminaison est en cours de développement et sera publiée (espérons-le) en 2024. En attendant, veuillez utiliser un client IMAP depuis le menu déroulant "Apps" dans la navigation de notre site web.
Lister les contacts
GET /v1/contacts
Bientôt disponible
Créer un contact
POST /v1/contacts
Bientôt disponible
Récupérer un contact
GET /v1/contacts/:id
Bientôt disponible
Mettre à jour un contact
PUT /v1/contacts/:id
Bientôt disponible
Supprimer un contact
DELETE /v1/contacts/:id
Bientôt disponible
Calendriers Alias (CalDAV)
Note
Contrairement aux autres points de terminaison API, ceux-ci nécessitent que l’Authentification utilise un "nom d’utilisateur" égal au nom d’utilisateur de l’alias et un "mot de passe" égal au mot de passe généré de l’alias en tant qu’en-têtes d’Autorisation Basic.
Warning
Cette section des points de terminaison est en cours de développement et sera publiée (espérons-le) en 2024. En attendant, veuillez utiliser un client IMAP depuis le menu déroulant "Apps" dans la navigation de notre site web.
Lister les calendriers
GET /v1/calendars
Bientôt disponible
Créer un calendrier
POST /v1/calendars
Bientôt disponible
Récupérer un calendrier
GET /v1/calendars/:id
Bientôt disponible
Mettre à jour un calendrier
PUT /v1/calendars/:id
Bientôt disponible
Supprimer un calendrier
DELETE /v1/calendars/:id
Bientôt disponible
Messages Alias (IMAP/POP3)
Note
Contrairement aux autres points de terminaison API, ceux-ci nécessitent que l’Authentification utilise un "nom d’utilisateur" égal au nom d’utilisateur de l’alias et un "mot de passe" égal au mot de passe généré de l’alias en tant qu’en-têtes d’Autorisation Basic.
Warning
Cette section des points de terminaison est en cours de développement et sera publiée (espérons-le) en 2024. En attendant, veuillez utiliser un client IMAP depuis le menu déroulant "Apps" dans la navigation de notre site web.
Veuillez vous assurer d’avoir suivi les instructions de configuration pour votre domaine.
Ces instructions se trouvent dans notre section FAQ Supportez-vous la réception d’emails avec IMAP ?.
Lister et rechercher des messages
GET /v1/messages
Bientôt disponible
Créer un message
Note
Cela NE va PAS envoyer un email – cela ajoutera simplement le message dans le dossier de votre boîte aux lettres (par exemple, c’est similaire à la commande IMAP APPEND). Si vous souhaitez envoyer un email, veuillez consulter Créer un email SMTP sortant ci-dessous. Après avoir créé l’email SMTP sortant, vous pouvez alors ajouter une copie de celui-ci à l’aide de ce point de terminaison dans la boîte aux lettres de votre alias à des fins de stockage.
POST /v1/messages
Bientôt disponible
Récupérer un message
GET /v1/messages/:id
Bientôt disponible
Mettre à jour un message
PUT /v1/messages/:id
Bientôt disponible
Supprimer un message
DELETE /v1/messages:id
Bientôt disponible
Dossiers Alias (IMAP/POP3)
Tip
Les points de terminaison des dossiers avec un chemin de dossier /v1/folders/:path comme point de terminaison sont interchangeables avec un ID de dossier :id. Cela signifie que vous pouvez référer au dossier soit par son path soit par sa valeur id.
Warning
Cette section des points de terminaison est en cours de développement et sera publiée (espérons-le) en 2024. En attendant, veuillez utiliser un client IMAP depuis le menu déroulant "Apps" dans la navigation de notre site web.
Lister les dossiers
GET /v1/folders
Bientôt disponible
Créer un dossier
POST /v1/folders
Bientôt disponible
Récupérer un dossier
GET /v1/folders/:id
Bientôt disponible
Mettre à jour un dossier
PUT /v1/folders/:id
Bientôt disponible
Supprimer un dossier
DELETE /v1/folders/:id
Bientôt disponible
Copier un dossier
POST /v1/folders/:id/copy
Bientôt disponible
Emails sortants
Veuillez vous assurer d’avoir suivi les instructions de configuration pour votre domaine.
Ces instructions se trouvent à Mon Compte → Domaines → Paramètres → Configuration SMTP sortant. Vous devez vous assurer de la configuration de DKIM, Return-Path, et DMARC pour l’envoi SMTP sortant avec votre domaine.
Obtenir la limite d'emails SMTP sortants
Ceci est un point de terminaison simple qui renvoie un objet JSON contenant le count et la limit pour le nombre de messages SMTP sortants quotidiens par compte.
GET /v1/emails/limit
Exemple de requête :
curl https://fe.tiamati.email/v1/emails/limit \
-u API_TOKEN:
Lister les emails SMTP sortants
Notez que ce point de terminaison ne renvoie pas les valeurs des propriétés pour le message, les headers, ni les rejectedErrors d'un email.
Pour retourner ces propriétés et leurs valeurs, veuillez utiliser le point de terminaison Récupérer un email avec un ID d'email.
GET /v1/emails
| Paramètre de la chaîne de requête | Obligatoire | Type | Description |
|---|---|---|---|
q |
Non | Chaîne (RegExp supporté) | Recherche d'emails par métadonnées |
domain |
Non | Chaîne (RegExp supporté) | Recherche d'emails par nom de domaine |
sort |
Non | Chaîne | Trier par un champ spécifique (préfixer d'un tiret simple - pour trier dans la direction inverse de ce champ). Par défaut created_at si non défini. |
page |
Non | Nombre | Voir Pagination pour plus de détails |
limit |
Non | Nombre | Voir Pagination pour plus de détails |
Exemple de requête :
curl https://fe.tiamati.email/v1/emails?limit=1 \
-u API_TOKEN:
Créer un email SMTP sortant
Notre API pour créer un email est inspirée et utilise la configuration des options de message de Nodemailer. Veuillez vous référer à la configuration des messages Nodemailer pour tous les paramètres du corps ci-dessous.
Notez qu'à l'exception de envelope et dkim (puisque nous les définissons automatiquement pour vous), nous supportons toutes les options Nodemailer. Nous définissons automatiquement les options disableFileAccess et disableUrlAccess à true pour des raisons de sécurité.
Vous devez soit passer l'option unique raw avec votre email complet brut incluant les en-têtes ou passer les options individuelles du corps ci-dessous.
Ce point de terminaison API encodera automatiquement les emojis pour vous s'ils sont trouvés dans les en-têtes (par exemple une ligne d'objet Subject: 🤓 Hello est automatiquement convertie en Subject: =?UTF-8?Q?=F0=9F=A4=93?= Hello). Notre objectif était de créer une API email extrêmement conviviale et à l'épreuve des erreurs pour les développeurs.
Authentification : Ce point de terminaison supporte à la fois l'authentification par token API et l'authentification par identifiants d'alias. Voir la section Authentification ci-dessus pour plus de détails.
POST /v1/emails
| Paramètre du corps | Obligatoire | Type | Description |
|---|---|---|---|
from |
Non | Chaîne (Email) | L'adresse email de l'expéditeur (doit exister en tant qu'alias du domaine). |
to |
Non | Chaîne ou Tableau | Liste séparée par des virgules ou un tableau des destinataires pour l'en-tête "To". |
cc |
Non | Chaîne ou Tableau | Liste séparée par des virgules ou un tableau des destinataires pour l'en-tête "Cc". |
bcc |
Non | Chaîne ou Tableau | Liste séparée par des virgules ou un tableau des destinataires pour l'en-tête "Bcc". |
subject |
Non | Chaîne | L'objet de l'email. |
text |
Non | Chaîne ou Buffer | La version texte brut du message. |
html |
Non | Chaîne ou Buffer | La version HTML du message. |
attachments |
Non | Tableau | Un tableau d'objets de pièces jointes (voir les champs communs de Nodemailer). |
sender |
Non | Chaîne | L'adresse email pour l'en-tête "Sender" (voir les champs plus avancés de Nodemailer). |
replyTo |
Non | Chaîne | L'adresse email pour l'en-tête "Reply-To". |
inReplyTo |
Non | Chaîne | Le Message-ID auquel le message répond. |
references |
Non | Chaîne ou Tableau | Liste séparée par des espaces ou un tableau de Message-ID. |
attachDataUrls |
Non | Booléen | Si true, convertit les images data: dans le contenu HTML du message en pièces jointes intégrées. |
watchHtml |
Non | Chaîne | Une version HTML spécifique à Apple Watch du message (selon la documentation Nodemailer, les dernières montres ne nécessitent pas que cela soit défini). |
amp |
Non | Chaîne | Une version HTML spécifique AMP4EMAIL du message (voir l'exemple Nodemailer). |
icalEvent |
Non | Objet | Un événement iCalendar à utiliser comme contenu alternatif du message (voir les événements calendrier Nodemailer). |
alternatives |
Non | Tableau | Un tableau de contenus alternatifs du message (voir le contenu alternatif Nodemailer). |
encoding |
Non | Chaîne | Encodage pour les chaînes texte et HTML (par défaut "utf-8", mais supporte aussi les valeurs d'encodage "hex" et "base64"). |
raw |
Non | Chaîne ou Buffer | Un message formaté RFC822 généré personnalisé à utiliser (au lieu d'un généré par Nodemailer – voir source personnalisée Nodemailer). |
textEncoding |
Non | Chaîne | Encodage forcé à utiliser pour les valeurs texte (soit "quoted-printable" ou "base64"). La valeur par défaut est la valeur la plus proche détectée (pour ASCII utiliser "quoted-printable"). |
priority |
Non | Chaîne | Niveau de priorité pour l'email (peut être "high", "normal" (par défaut), ou "low"). Notez qu'une valeur "normal" ne définit pas d'en-tête de priorité (c'est le comportement par défaut). Si une valeur "high" ou "low" est définie, alors les en-têtes X-Priority, X-MSMail-Priority et Importance seront définis en conséquence. |
headers |
Non | Objet ou Tableau | Un objet ou un tableau de champs d'en-tête supplémentaires à définir (voir les en-têtes personnalisés Nodemailer). |
messageId |
Non | Chaîne | Une valeur Message-ID optionnelle pour l'en-tête "Message-ID" (une valeur par défaut sera automatiquement créée si non définie – notez que la valeur doit respecter la spécification RFC2822). |
date |
Non | Chaîne ou Date | Une valeur Date optionnelle qui sera utilisée si l'en-tête Date est manquant après analyse, sinon la chaîne UTC actuelle sera utilisée si non définie. L'en-tête date ne peut pas être plus de 30 jours en avance par rapport à l'heure actuelle. |
list |
Non | Objet | Un objet optionnel des en-têtes List-* (voir les en-têtes de liste Nodemailer). |
Exemple de requête (jeton API) :
curl -X POST https://fe.tiamati.email/v1/emails \
-u API_TOKEN: \
-d "from=alias@example.com" \
-d "to=user%40gmail.com" \
-d "subject=test" \
-d "text=test"
Exemple de requête (identifiants alias) :
curl -X POST https://fe.tiamati.email/v1/emails \
-u "alias@example.com:GENERATED_PASSWORD" \
-d "from=alias@example.com" \
-d "to=user%40gmail.com" \
-d "subject=test" \
-d "text=test"
Exemple de requête (email brut) :
curl -X POST https://fe.tiamati.email/v1/emails \
-u API_TOKEN: \
-d "raw=`cat file.eml`"
Récupérer un email SMTP sortant
GET /v1/emails/:id
Exemple de requête :
curl https://fe.tiamati.email/v1/emails/:id \
-u API_TOKEN:
Supprimer un email SMTP sortant
La suppression d’un email définira le statut à "rejected" (et ne le traitera donc plus dans la file d’attente) si et seulement si le statut actuel est l’un des suivants : "pending", "queued", ou "deferred". Nous pouvons purger automatiquement les emails après 30 jours suivant leur création et/ou envoi – vous devez donc conserver une copie des emails SMTP sortants dans votre client, base de données ou application. Vous pouvez référencer notre valeur d’ID d’email dans votre base de données si vous le souhaitez – cette valeur est retournée à la fois par les points d’accès Créer un email et Récupérer un email.
DELETE /v1/emails/:id
Exemple de requête :
curl -X DELETE https://fe.tiamati.email/v1/emails/:id \
-u API_TOKEN:
Domaines
Tip
Les points d’accès de domaine avec le nom de domaine /v1/domains/:domain_name comme point d’accès sont interchangeables avec l’ID du domaine :domain_id. Cela signifie que vous pouvez vous référer au domaine soit par son nom, soit par sa valeur id.
Lister les domaines
Note
À partir du 1er novembre 2024, les points d’accès API pour Lister les domaines et Lister les alias de domaine auront par défaut un maximum de 1000 résultats par page. Si vous souhaitez activer ce comportement plus tôt, vous pouvez passer ?paginate=true comme paramètre de chaîne de requête supplémentaire à l’URL du point d’accès. Voir Pagination pour plus de détails.
GET /v1/domains
| Paramètre de requête | Obligatoire | Type | Description |
|---|---|---|---|
q |
Non | Chaîne (RegExp supporté) | Recherche de domaines par nom |
name |
Non | Chaîne (RegExp supporté) | Recherche de domaines par nom |
sort |
Non | Chaîne | Trier par un champ spécifique (précéder d’un tiret simple - pour trier dans le sens inverse de ce champ). Par défaut created_at si non défini. |
page |
Non | Nombre | Voir Pagination pour plus de détails |
limit |
Non | Nombre | Voir Pagination pour plus de détails |
Exemple de requête :
curl https://fe.tiamati.email/v1/domains \
-u API_TOKEN:
Créer un domaine
POST /v1/domains
| Paramètre du corps | Obligatoire | Type | Description |
|---|---|---|---|
domain |
Oui | Chaîne (FQDN ou IP) | Nom de domaine pleinement qualifié ("FQDN") ou adresse IP |
team_domain |
Non | Chaîne (ID de domaine ou nom de domaine ; FQDN) | Assigner automatiquement ce domaine à la même équipe qu’un autre domaine. Cela signifie que tous les membres de ce domaine seront assignés comme membres de l’équipe, et le plan sera automatiquement défini sur team. Vous pouvez définir cette valeur à "none" si nécessaire pour désactiver explicitement cela, mais ce n’est pas obligatoire. |
plan |
Non | Chaîne (énumérable) | Type de plan (doit être "free", "enhanced_protection", ou "team", par défaut "free" ou le plan payant actuel de l’utilisateur s’il en a un) |
catchall |
Non | Chaîne (adresses email délimitées) ou Booléen | Créer un alias catch-all par défaut, par défaut à true (si true, l’adresse email de l’utilisateur API sera utilisée comme destinataire, et si false, aucun catch-all ne sera créé). Si une chaîne est passée, il s’agit d’une liste délimitée d’adresses email à utiliser comme destinataires (séparées par saut de ligne, espace et/ou virgule) |
has_adult_content_protection |
Non | Booléen | Activer la protection contre le contenu adulte du scanner anti-spam sur ce domaine |
has_phishing_protection |
Non | Booléen | Activer la protection contre le phishing du scanner anti-spam sur ce domaine |
has_executable_protection |
Non | Booléen | Activer la protection contre les exécutables du scanner anti-spam sur ce domaine |
has_virus_protection |
Non | Booléen | Activer la protection contre les virus du scanner anti-spam sur ce domaine |
has_recipient_verification |
Non | Booléen | Valeur par défaut globale du domaine pour exiger que les destinataires d’alias cliquent sur un lien de vérification d’email pour que les emails soient transmis |
ignore_mx_check |
Non | Booléen | Ignorer la vérification de l’enregistrement MX sur le domaine pour la vérification. Ceci est principalement destiné aux utilisateurs ayant des règles avancées de configuration d’échange MX et qui doivent conserver leur échange MX existant et le rediriger vers le nôtre. |
retention_days |
Non | Nombre | Entier entre 0 et 30 correspondant au nombre de jours de conservation des emails SMTP sortants une fois livrés avec succès ou en erreur permanente. Par défaut 0, ce qui signifie que les emails SMTP sortants sont purgés et expurgés immédiatement pour votre sécurité. |
bounce_webhook |
Non | Chaîne (URL) ou Booléen (false) | URL webhook http:// ou https:// de votre choix pour recevoir les webhooks de rebond. Nous enverrons une requête POST à cette URL avec des informations sur les échecs SMTP sortants (par exemple échecs temporaires ou définitifs – pour que vous puissiez gérer vos abonnés et gérer programmatiquement vos emails sortants). |
max_quota_per_alias |
Non | Chaîne | Quota maximum de stockage pour les alias sur ce nom de domaine. Entrez une valeur telle que "1 GB" qui sera analysée par bytes. |
Exemple de requête :
curl -X POST https://fe.tiamati.email/v1/domains \
-u API_TOKEN: \
-d domain=example.com \
-d plan=free
Récupérer le domaine
GET /v1/domains/example.com
Exemple de requête :
curl https://fe.tiamati.email/v1/domains/example.com \
-u API_TOKEN:
Vérifier les enregistrements du domaine
GET /v1/domains/example.com/verify-records
Exemple de requête :
curl https://fe.tiamati.email/v1/domains/example.com/verify-records \
-u API_TOKEN:
Vérifier les enregistrements SMTP du domaine
GET /v1/domains/example.com/verify-smtp
Exemple de requête :
curl https://fe.tiamati.email/v1/domains/example.com/verify-smtp \
-u API_TOKEN:
Lister les mots de passe catch-all pour tout le domaine
GET /v1/domains/example.com/catch-all-passwords
Exemple de requête :
curl https://fe.tiamati.email/v1/domains/example.com/catch-all-passwords \
-u API_TOKEN:
Créer un mot de passe catch-all pour tout le domaine
POST /v1/domains/example.com/catch-all-passwords
| Paramètre du corps | Obligatoire | Type | Description |
|---|---|---|---|
new_password |
Non | String | Votre nouveau mot de passe personnalisé à utiliser pour le mot de passe catch-all du domaine. Notez que vous pouvez laisser ce champ vide ou l’omettre complètement dans le corps de votre requête API si vous souhaitez obtenir un mot de passe fort généré aléatoirement. |
description |
Non | String | Description à des fins d’organisation uniquement. |
Exemple de requête :
curl BASE_URL/v1/domains/example.com/catch-all-passwords \
-u API_TOKEN:
Supprimer un mot de passe catch-all pour tout le domaine
DELETE /v1/domains/example.com/catch-all-passwords/:token_id
Exemple de requête :
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/catch-all-passwords/:token_id \
-u API_TOKEN:
Mettre à jour le domaine
PUT /v1/domains/example.com
| Paramètre du corps | Obligatoire | Type | Description |
|---|---|---|---|
smtp_port |
Non | String ou Number | Port personnalisé à configurer pour le transfert SMTP (par défaut "25") |
has_adult_content_protection |
Non | Boolean | Indique s’il faut activer la protection contre le contenu adulte du Spam Scanner sur ce domaine |
has_phishing_protection |
Non | Boolean | Indique s’il faut activer la protection anti-phishing du Spam Scanner sur ce domaine |
has_executable_protection |
Non | Boolean | Indique s’il faut activer la protection contre les exécutables du Spam Scanner sur ce domaine |
has_virus_protection |
Non | Boolean | Indique s’il faut activer la protection antivirus du Spam Scanner sur ce domaine |
has_recipient_verification |
Non | Boolean | Valeur par défaut globale du domaine indiquant s’il faut exiger que les destinataires alias cliquent sur un lien de vérification d’email pour que les emails soient transmis |
ignore_mx_check |
Non | Boolean | Indique s’il faut ignorer la vérification de l’enregistrement MX sur le domaine pour la vérification. Ceci s’adresse principalement aux utilisateurs ayant des règles avancées de configuration d’échange MX et qui doivent conserver leur échange MX existant et le transférer au nôtre. |
retention_days |
Non | Number | Entier entre 0 et 30 correspondant au nombre de jours de conservation des emails SMTP sortants une fois livrés avec succès ou en erreur permanente. Par défaut 0, ce qui signifie que les emails SMTP sortants sont immédiatement purgés et expurgés pour votre sécurité. |
bounce_webhook |
Non | String (URL) ou Boolean (false) | URL webhook http:// ou https:// de votre choix pour recevoir les webhooks de rebond. Nous enverrons une requête POST à cette URL avec des informations sur les échecs SMTP sortants (par ex. échecs temporaires ou définitifs – pour que vous puissiez gérer vos abonnés et gérer programmatiquement vos emails sortants). |
max_quota_per_alias |
Non | String | Quota maximum de stockage pour les alias sur ce nom de domaine. Entrez une valeur telle que "1 GB" qui sera analysée par bytes. |
Exemple de requête :
curl -X PUT https://fe.tiamati.email/v1/domains/example.com \
-u API_TOKEN:
Supprimer un domaine
DELETE /v1/domains/:domain_name
Exemple de requête :
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name \
-u API_TOKEN:
Invitations
Accepter une invitation de domaine
GET /v1/domains/:domain_name/invites
Exemple de requête :
curl https://fe.tiamati.email/v1/domains/:domain_name/invites \
-u API_TOKEN:
Créer une invitation de domaine
POST /v1/domains/example.com/invites
| Paramètre du corps | Obligatoire | Type | Description |
|---|---|---|---|
email |
Oui | Chaîne (Email) | Adresse email à inviter dans la liste des membres du domaine |
group |
Oui | Chaîne (énumérable) | Groupe auquel ajouter l'utilisateur dans l'appartenance au domaine (peut être "admin" ou "user") |
Exemple de requête :
curl -X POST https://fe.tiamati.email/v1/domains/example.com/invites \
-u API_TOKEN: \
-d "email=user%40gmail.com" \
-d group=admin
Important
Si l'utilisateur invité est déjà un membre accepté d'autres domaines dont l'administrateur qui l'invite est membre, alors l'invitation sera automatiquement acceptée et aucun email ne sera envoyé.
Supprimer une invitation de domaine
DELETE /v1/domains/:domain_name/invites
| Paramètre du corps | Obligatoire | Type | Description |
|---|---|---|---|
email |
Oui | Chaîne (Email) | Adresse email à retirer de la liste des membres du domaine |
Exemple de requête :
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/invites \
-u API_TOKEN:
Membres
Mettre à jour un membre du domaine
PUT /v1/domains/example.com/members/:member_id
| Paramètre du corps | Obligatoire | Type | Description |
|---|---|---|---|
group |
Oui | Chaîne (énumérable) | Groupe auquel mettre à jour l'utilisateur dans l'appartenance au domaine (peut être "admin" ou "user") |
Exemple de requête :
curl -X PUT https://fe.tiamati.email/v1/domains/example.com/members/:member_id \
-u API_TOKEN:
Supprimer un membre du domaine
DELETE /v1/domains/:domain_name/members/:member_id
Exemple de requête :
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/members/:member_id \
-u API_TOKEN:
Alias
Générer un mot de passe pour un alias
Notez que si vous n'envoyez pas les instructions par email, alors le nom d'utilisateur et le mot de passe seront dans le corps de la réponse JSON d'une requête réussie au format { username: 'alias@yourdomain.com', password: 'some-generated-password' }.
POST /v1/domains/example.com/aliases/:alias_id/generate-password
| Paramètre du corps | Obligatoire | Type | Description |
|---|---|---|---|
new_password |
Non | Chaîne | Votre nouveau mot de passe personnalisé à utiliser pour l'alias. Notez que vous pouvez laisser ce champ vide ou l'omettre complètement dans le corps de votre requête API si vous souhaitez obtenir un mot de passe fort généré aléatoirement. |
password |
Non | Chaîne | Mot de passe existant de l'alias pour changer le mot de passe sans supprimer le stockage IMAP existant (voir l'option is_override ci-dessous si vous n'avez plus le mot de passe existant). |
is_override |
Non | Booléen | À UTILISER AVEC PRUDENCE : Cela écrasera complètement le mot de passe et la base de données existants de l'alias, supprimera définitivement le stockage IMAP existant et réinitialisera complètement la base de données SQLite des emails de l'alias. Veuillez faire une sauvegarde si possible si vous avez une boîte aux lettres attachée à cet alias. |
emailed_instructions |
Non | Chaîne | Adresse email à laquelle envoyer le mot de passe de l'alias et les instructions de configuration. |
Exemple de requête :
curl -X POST https://fe.tiamati.email/v1/domains/example.com/aliases/:alias_id/generate-password \
-u API_TOKEN:
Lister les alias de domaine
Note
À partir du 1er novembre 2024, les points d’API pour Lister les domaines et Lister les alias de domaine auront par défaut 1000 résultats maximum par page. Si vous souhaitez activer ce comportement plus tôt, vous pouvez passer ?paginate=true comme paramètre supplémentaire dans la chaîne de requête de l’URL du point d’API. Voir Pagination pour plus de détails.
GET /v1/domains/example.com/aliases
| Paramètre de la chaîne de requête | Obligatoire | Type | Description |
|---|---|---|---|
q |
Non | Chaîne (RegExp supporté) | Recherche d’alias dans un domaine par nom, étiquette ou destinataire |
name |
Non | Chaîne (RegExp supporté) | Recherche d’alias dans un domaine par nom |
recipient |
Non | Chaîne (RegExp supporté) | Recherche d’alias dans un domaine par destinataire |
sort |
Non | Chaîne | Trier par un champ spécifique (précéder d’un tiret simple - pour trier dans le sens inverse). Par défaut created_at si non défini. |
page |
Non | Nombre | Voir Pagination pour plus de détails |
limit |
Non | Nombre | Voir Pagination pour plus de détails |
Exemple de requête :
curl https://fe.tiamati.email/v1/domains/example.com/aliases?pagination=true \
-u API_TOKEN:
Créer un nouvel alias de domaine
POST /v1/domains/example.com/aliases
| Paramètre du corps | Obligatoire | Type | Description |
|---|---|---|---|
name |
Non | Chaîne | Nom de l’alias (si non fourni ou vide, un alias aléatoire est généré) |
recipients |
Non | Chaîne ou Tableau | Liste des destinataires (doit être une chaîne séparée par retour à la ligne/espace/virgule ou un tableau d’adresses email valides, noms de domaine pleinement qualifiés ("FQDN"), adresses IP, et/ou URL de webhook – si non fourni ou tableau vide, l’email de l’utilisateur effectuant la requête API sera défini comme destinataire) |
description |
Non | Chaîne | Description de l’alias |
labels |
Non | Chaîne ou Tableau | Liste d’étiquettes (doit être une chaîne séparée par retour à la ligne/espace/virgule ou un tableau) |
has_recipient_verification |
Non | Booléen | Exiger que les destinataires cliquent sur un lien de vérification par email pour que les emails soient transmis (par défaut, la configuration du domaine est utilisée si non défini explicitement dans le corps de la requête) |
is_enabled |
Non | Booléen | Activer ou désactiver cet alias (si désactivé, les emails ne seront pas routés mais renverront des codes de statut réussis). Si une valeur est passée, elle est convertie en booléen via boolean) |
error_code_if_disabled |
Non | Nombre (soit 250, 421 ou 550) |
Les emails entrants vers cet alias seront rejetés si is_enabled est false avec soit 250 (livraison silencieuse nulle, ex. trou noir ou /dev/null), 421 (rejet temporaire ; réessayer pendant environ 5 jours) ou 550 (échec permanent et rejet). Par défaut 250. |
has_imap |
Non | Booléen | Activer ou désactiver le stockage IMAP pour cet alias (si désactivé, les emails entrants ne seront pas stockés dans le stockage IMAP. Si une valeur est passée, elle est convertie en booléen via boolean) |
has_pgp |
Non | Booléen | Activer ou désactiver le chiffrement OpenPGP pour le stockage email chiffré IMAP/POP3/CalDAV/CardDAV en utilisant la public_key de l’alias. |
public_key |
Non | Chaîne | Clé publique OpenPGP au format ASCII Armor (cliquez ici pour voir un exemple; ex. clé GPG pour support@forwardemail.net). S’applique uniquement si has_pgp est à true. En savoir plus sur le chiffrement de bout en bout dans notre FAQ. |
max_quota |
Non | Chaîne | Quota maximum de stockage pour cet alias. Laisser vide pour réinitialiser au quota maximum actuel du domaine ou entrer une valeur comme "1 GB" qui sera analysée par bytes. Cette valeur ne peut être modifiée que par les administrateurs du domaine. |
vacation_responder_is_enabled |
Non | Booléen | Activer ou désactiver un répondeur automatique d’absence. |
vacation_responder_start_date |
Non | Chaîne | Date de début du répondeur d’absence (si activé et aucune date de début définie ici, il est supposé déjà démarré). Nous supportons des formats de date tels que MM/DD/YYYY, YYYY-MM-DD et d’autres formats via une analyse intelligente avec dayjs. |
vacation_responder_end_date |
Non | Chaîne | Date de fin du répondeur d’absence (si activé et aucune date de fin définie ici, il est supposé ne jamais se terminer et répondre indéfiniment). Nous supportons des formats de date tels que MM/DD/YYYY, YYYY-MM-DD et d’autres formats via une analyse intelligente avec dayjs. |
vacation_responder_subject |
Non | Chaîne | Sujet en texte brut pour le répondeur d’absence, ex. "Absent du bureau". Nous utilisons striptags pour supprimer tout HTML ici. |
vacation_responder_message |
Non | Chaîne | Message en texte brut pour le répondeur d’absence, ex. "Je serai absent du bureau jusqu’en février.". Nous utilisons striptags pour supprimer tout HTML ici. |
Exemple de requête :
curl -X POST https://fe.tiamati.email/v1/domains/example.com/aliases \
-u API_TOKEN:
Récupérer un alias de domaine
Vous pouvez récupérer un alias de domaine soit par son id, soit par sa valeur name.
GET /v1/domains/:domain_name/aliases/:alias_id
Exemple de requête :
curl https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_id \
-u API_TOKEN:
GET /v1/domains/:domain_name/aliases/:alias_name
Exemple de requête :
curl https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_name \
-u API_TOKEN:
Mettre à jour un alias de domaine
PUT /v1/domains/example.com/aliases/:alias_id
| Paramètre du corps | Obligatoire | Type | Description |
|---|---|---|---|
name |
Non | Chaîne de caractères | Nom de l'alias |
recipients |
Non | Chaîne ou Tableau | Liste des destinataires (doit être une chaîne séparée par des sauts de ligne/espaces/virgules ou un tableau d'adresses email valides, noms de domaine entièrement qualifiés ("FQDN"), adresses IP, et/ou URL de webhook) |
description |
Non | Chaîne de caractères | Description de l'alias |
labels |
Non | Chaîne ou Tableau | Liste des étiquettes (doit être une chaîne séparée par des sauts de ligne/espaces/virgules ou un tableau) |
has_recipient_verification |
Non | Booléen | Exiger que les destinataires cliquent sur un lien de vérification par email pour que les emails soient transmis (par défaut, la configuration du domaine est utilisée si ce n'est pas explicitement défini dans le corps de la requête) |
is_enabled |
Non | Booléen | Activer ou désactiver cet alias (si désactivé, les emails ne seront acheminés nulle part mais retourneront des codes de statut réussis). Si une valeur est passée, elle est convertie en booléen en utilisant boolean) |
error_code_if_disabled |
Non | Nombre (soit 250, 421 ou 550) |
Les emails entrants vers cet alias seront rejetés si is_enabled est false avec soit 250 (livraison silencieuse nulle part, ex. trou noir ou /dev/null), 421 (rejet temporaire ; et réessai pendant environ 5 jours) ou 550 échec permanent et rejet. Par défaut 250. |
has_imap |
Non | Booléen | Activer ou désactiver le stockage IMAP pour cet alias (si désactivé, les emails entrants reçus ne seront pas stockés dans le stockage IMAP. Si une valeur est passée, elle est convertie en booléen en utilisant boolean) |
has_pgp |
Non | Booléen | Activer ou désactiver le chiffrement OpenPGP pour le stockage email chiffré IMAP/POP3/CalDAV/CardDAV en utilisant la public_key de l'alias. |
public_key |
Non | Chaîne de caractères | Clé publique OpenPGP au format ASCII Armor (cliquez ici pour voir un exemple; ex. clé GPG pour support@forwardemail.net). Cela s'applique uniquement si vous avez has_pgp défini à true. En savoir plus sur le chiffrement de bout en bout dans notre FAQ. |
max_quota |
Non | Chaîne de caractères | Quota maximum de stockage pour cet alias. Laisser vide pour réinitialiser au quota maximum actuel du domaine ou entrer une valeur telle que "1 GB" qui sera analysée par bytes. Cette valeur ne peut être ajustée que par les administrateurs du domaine. |
vacation_responder_is_enabled |
Non | Booléen | Activer ou désactiver un répondeur automatique de vacances. |
vacation_responder_start_date |
Non | Chaîne de caractères | Date de début pour le répondeur de vacances (si activé et aucune date de début définie ici, il est supposé qu'il a déjà commencé). Nous supportons des formats de date tels que MM/DD/YYYY, YYYY-MM-DD, et d'autres formats via une analyse intelligente avec dayjs. |
vacation_responder_end_date |
Non | Chaîne de caractères | Date de fin pour le répondeur de vacances (si activé et aucune date de fin définie ici, il est supposé qu'il ne se termine jamais et répond indéfiniment). Nous supportons des formats de date tels que MM/DD/YYYY, YYYY-MM-DD, et d'autres formats via une analyse intelligente avec dayjs. |
vacation_responder_subject |
Non | Chaîne de caractères | Sujet en texte brut pour le répondeur de vacances, ex. "Absent du bureau". Nous utilisons striptags pour supprimer tout HTML ici. |
vacation_responder_message |
Non | Chaîne de caractères | Message en texte brut pour le répondeur de vacances, ex. "Je serai absent du bureau jusqu'en février.". Nous utilisons striptags pour supprimer tout HTML ici. |
Exemple de requête :
curl -X PUT https://fe.tiamati.email/v1/domains/example.com/aliases/:alias_id \
-u API_TOKEN:
Supprimer un alias de domaine
DELETE /v1/domains/:domain_name/aliases/:alias_id
Exemple de requête :
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_id \
-u API_TOKEN:
Chiffrer
Nous vous permettons de chiffrer des enregistrements même avec le plan gratuit sans frais. La confidentialité ne devrait pas être une fonctionnalité, elle devrait être intrinsèquement intégrée à tous les aspects d’un produit. Très demandé dans une discussion Privacy Guides et sur nos issues GitHub, nous avons ajouté cela.
Chiffrer un enregistrement TXT
POST /v1/encrypt
| Paramètre du corps | Obligatoire | Type | Description |
|---|---|---|---|
input |
Oui | String | Tout enregistrement TXT en clair valide de Forward Email |
Exemple de requête :
curl -X POST https://fe.tiamati.email/v1/encrypt \
-d "input=user@gmail.com"