API de messagerie

Pour l’instant, nous n’avons pas encore publié de wrappers d’API, mais nous prévoyons de le faire dans un avenir proche. Envoyer un courriel à api@forwardemail.net si vous souhaitez être averti lorsque le wrapper API d'un langage de programmation particulier est publié. En attendant, vous pouvez utiliser ces bibliothèques de requêtes HTTP recommandées dans votre application, ou simplement utiliser boucle comme dans les exemples ci-dessous.

LangueBibliothèque
RubisFaraday
Pythondemandes
JavaOkHttp
PHPbouffer
Javascriptsuperagent (nous sommes des mainteneurs)
Node.jssuperagent (nous sommes des mainteneurs)
Allernet/http
.NETResteSharp

Le chemin URI de base HTTP actuel est : https://api.forwardemail.net.

Tous les points de terminaison nécessitent votre Clé API à définir comme valeur "nom d'utilisateur" de la requête Autorisation de base entête. Ne vous inquiétez pas, des exemples sont fournis ci-dessous pour vous si vous n'êtes pas sûr de ce dont il s'agit.

Si des erreurs se produisent, le corps de la réponse de la requête API contiendra un message d'erreur détaillé.

CodeNom
200OK
400Mauvaise demande
401Non autorisé
403Interdit
404Pas trouvé
429Trop de demandes
500Erreur interne du serveur
501Pas mis en œuvre
502Mauvaise passerelle
503service non disponible
504Expiration du délai de passerelle
Conseil: Si vous recevez un code de statut 5xx (ce qui ne devrait pas arriver), veuillez nous contacter au api@forwardemail.net et nous vous aiderons à résoudre votre problème immédiatement.

Notre service est traduit dans plus de 25 langues différentes. Tous les messages de réponse de l'API sont traduits dans la dernière langue détectée par l'utilisateur effectuant la requête API. Vous pouvez remplacer cela en passant un message personnalisé Accept-Language entête. N'hésitez pas à l'essayer en utilisant le menu déroulant des langues au bas de cette page.

Si vous souhaitez être averti lorsque la pagination est disponible, veuillez envoyer un e-mail api@forwardemail.net.

Récupérer les journaux

Notre API vous permet par programme de télécharger des journaux pour votre compte. La soumission d'une demande à ce point de terminaison traitera tous les journaux de votre compte et vous les enverra par courrier électronique en pièce jointe (Gzip comprimé CSV fichier de feuille de calcul) une fois terminé.

Cela vous permet de créer des tâches en arrière-plan avec un Tâche planifiée ou en utilisant notre Logiciel de planification de tâches Node.js Bree pour recevoir des journaux quand vous le souhaitez. Notez que ce point de terminaison est limité à 10 demandes par jour.

La pièce jointe est la forme minuscule de email-deliverability-logs-YYYY-MM-DD-h-mm-A-z.csv.gz et l'e-mail lui-même 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ètres de chaîne de requêteRequisTaperDescription
domainNonChaîne (FQDN)Filtrez les journaux par domaine pleinement qualifié (« FQDN »). Si vous ne fournissez pas ces informations, tous les journaux de tous les domaines seront récupérés.
qNonChaîneRecherchez des journaux par e-mail, domaine, nom d'alias, adresse IP ou date (M/Y, M/D/YY, M-D, M-D-YY, ou M.D.YY format).

Exemple de demande :

curl https://api.forwardemail.net/v1/logs/download \
  -u API_TOKEN:

Exemple de tâche Cron (à minuit tous les jours) :

0 0 * * * /usr/bin/curl https://api.forwardemail.net/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 de tâche cron.

Exemple de tâche Cron (à minuit tous les jours) et avec les journaux de la veille):

Pour Mac OS :

0 0 * * * /usr/bin/curl https://api.forwardemail.net/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://api.forwardemail.net/v1/logs/download?q=`date --date "-1 days" -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null

Créer un compte

POST /v1/account

Paramètre du corpsRequisTaperDescription
emailOuiChaîne (e-mail)Adresse e-mail
passwordOuiChaîneMot de passe

Exemple de demande :

curl -X POST https://api.forwardemail.net/v1/account \
  -u API_TOKEN: \
  -d "email=user%40gmail.com"

Récupérer le compte

GET /v1/account

Exemple de demande :

curl https://api.forwardemail.net/v1/account \
  -u API_TOKEN:

Compte mis à jour

PUT /v1/account

Paramètre du corpsRequisTaperDescription
emailNonChaîne (e-mail)Adresse e-mail
given_nameNonChaînePrénom
family_nameNonChaîneNom de famille
avatar_urlNonChaîne (URL)Lien vers l'image de l'avatar

Exemple de demande :

curl -X PUT https://api.forwardemail.net/v1/account \
  -u API_TOKEN: \
  -d "email=user%40gmail.com"

Veuillez vous assurer que vous avez suivi les instructions de configuration de votre domaine. Ces instructions peuvent être trouvées sur Mon compte → Domaines → Paramètres → Configuration SMTP sortante. Vous devez assurer la configuration de DKIM, Return-Path et DMARC pour l'envoi de SMTP sortant avec votre domaine.

Liste des e-mails

Notez que ce point de terminaison ne renvoie pas l'e-mail déjà créé message, headers, accepted, ni rejectedErrors propriétés.

Pour renvoyer ces propriétés et leurs valeurs, veuillez utiliser le Récupérer l'e-mail point final avec un identifiant de messagerie.

Ce point de terminaison renverra au maximum 50 résultats à la fois. Si vous souhaitez interroger plusieurs pages, ajoutez ?page=NUMBERNUMBER est un entier, par ex. ?page=1.

GET /v1/emails

Paramètres de chaîne de requêteRequisTaperDescription
qNonChaîne (RegExp pris en charge)Rechercher des e-mails par métadonnées
domainNonChaîne (RegExp pris en charge)Rechercher des e-mails par nom de domaine
pageNonNombrePage de retour des résultats (la valeur par défaut est 1)
`limiteNonNombreNombre de résultats par page à renvoyer (la valeur par défaut est 50 – le maximum est 50 et le minimum est 10)

Exemple de demande :

curl https://api.forwardemail.net/v1/emails \
  -u API_TOKEN:

Créer un e-mail

Notre API de création d'e-mail s'inspire et exploite la configuration des options de message de Nodemailer. Veuillez vous en remettre au Configuration des messages Nodemailer pour tous les paramètres corporels ci-dessous.

Notez qu'à l'exception de envelope et dkim (puisque nous les définissons automatiquement pour vous), nous prenons en charge toutes les options de Nodemailer. Nous définissons automatiquement disableFileAccess et disableUrlAccess options pour true pour des raisons de sécurité.

Vous devez soit passer l'option unique de raw avec votre e-mail brut complet, y compris les en-têtes ou transmettez les options de paramètres de corps individuels ci-dessous.

POST /v1/emails

Paramètre du corpsRequisTaperDescription
fromNonChaîne (e-mail)L'adresse e-mail de l'expéditeur (doit exister en tant qu'alias du domaine).
toNonChaîne ou tableauListe séparée par des virgules ou tableau de destinataires pour l'en-tête « À ».
ccNonChaîne ou tableauListe séparée par des virgules ou tableau de destinataires pour l'en-tête "Cc".
bccNonChaîne ou tableauListe séparée par des virgules ou tableau de destinataires pour l'en-tête "Cci".
subjectNonChaîneLe sujet de l'e-mail.
textNonChaîne ou tamponLa version en texte brut du message.
htmlNonChaîne ou tamponLa version HTML du message.
attachmentsNonTableauUn tableau d'objets de pièce jointe (voir Champs communs de Nodemailer).
senderNonChaîneL'adresse e-mail pour l'en-tête « Expéditeur » (voir Champs les plus avancés de Nodemailer).
replyToNonChaîneL'adresse e-mail pour l'en-tête « Répondre à ».
inReplyToNonChaîneL'ID de message auquel le message répond.
referencesNonChaîne ou tableauListe séparée par des espaces ou un tableau d'ID de message.
attachDataUrlsNonBooléenSi true puis convertit data: images dans le contenu HTML du message aux pièces jointes intégrées.
watchHtmlNonChaîneUne version HTML spécifique à l'Apple Watch du message (selon la documentation Nodemailer, les montres les plus récentes ne nécessitent pas ce réglage).
ampNonChaîneUne version HTML spécifique à AMP4EMAIL du message (voir Exemple de Nodemailer).
icalEventNonObjetUn événement iCalendar à utiliser comme contenu de message alternatif (voir Événements du calendrier de Nodemailer).
alternativesNonTableauUn tableau de contenu de message alternatif (voir Contenu alternatif de Nodemailer).
encodingNonChaîneEncodage du texte et des chaînes HTML (par défaut : "utf-8", mais prend en charge "hex" et "base64" valeurs d'encodage également).
rawNonChaîne ou tamponUn message au format RFC822 généré personnalisé à utiliser (au lieu de celui généré par Nodemailer – voir Source personnalisée de Nodemailer).
textEncodingNonChaîneEncodage dont l'utilisation est forcée pour les valeurs de texte (soit "quoted-printable" ou "base64"). La valeur par défaut est la valeur la plus proche détectée (pour une utilisation ASCII "quoted-printable").
priorityNonChaîneNiveau de priorité de l'e-mail (peut être soit "high", "normal" (par défaut), ou "low"). Notez qu'une valeur de "normal" ne définit pas d'en-tête de priorité (c'est le comportement par défaut). Si une valeur de "high" ou "low" est défini, alors le X-Priority, X-MSMail-Priority, et Importance en-têtes sera réglé en conséquence.
headersNonObjet ou tableauUn objet ou un tableau de champs d'en-tête supplémentaires à définir (voir En-têtes personnalisés de Nodemailer).
messageIdNonChaîneUne valeur Message-ID facultative pour l'en-tête "Message-ID" (une valeur par défaut sera automatiquement créée si elle n'est pas définie - notez que la valeur doit respecter la spécification RFC2822).
dateNonChaîne ou DateUne valeur Date facultative qui sera utilisée si l'en-tête Date est manquant après l'analyse, sinon la chaîne UTC actuelle sera utilisée si elle n'est pas définie. L’en-tête de date ne peut pas être antérieur de plus de 30 jours à l’heure actuelle.
listNonObjetUn objet facultatif de List-* en-têtes (voir En-têtes de liste de Nodemailer).

Exemple de demande :

curl -X POST https://api.forwardemail.net/v1/emails \
  -u API_TOKEN: \
  -d "from=alias@example.com" \
  -d "to=user%40gmail.com" \
  -d "subject=test" \
  -d "text=test"

Exemple de demande :

curl -X POST https://api.forwardemail.net/v1/emails \
  -u API_TOKEN: \
  -d "raw=`cat file.eml`"

Récupérer l'e-mail

GET /v1/emails/:id

Exemple de demande :

curl https://api.forwardemail.net/v1/emails/:id \
  -u API_TOKEN:

Supprimer l'e-mail

La suppression de l'e-mail définira le statut sur "rejected" (et ne le traitera donc pas dans la file d'attente) si et seulement si l'état actuel est l'un des "pending", "queued", ou "deferred". Nous pouvons purger automatiquement les e-mails 30 jours après leur création et/ou leur envoi. Vous devez donc conserver une copie des e-mails SMTP sortants dans votre client, base de données ou application. Vous pouvez référencer la valeur de notre identifiant de messagerie dans votre base de données si vous le souhaitez – cette valeur est renvoyée par les deux Créer un e-mail et Récupérer l'e-mail points finaux.

DELETE /v1/emails/:id

Exemple de demande :

curl -X DELETE https://api.forwardemail.net/v1/emails/:id \
  -u API_TOKEN:

Conseil: Points de terminaison de domaine avec le nom d'un domaine /v1/domains/:domain_name car leur chemin est interchangeable avec l'identifiant d'un domaine :domain_id. Cela signifie que vous pouvez faire référence au domaine soit par son name ou id valeur.

Lister les domaines

GET /v1/domains

Paramètres de chaîne de requêteRequisTaperDescription
qNonChaîne (RegExp pris en charge)Rechercher des domaines par nom
nameNonChaîne (RegExp pris en charge)Rechercher des domaines par nom

Exemple de demande :

curl https://api.forwardemail.net/v1/domains \
  -u API_TOKEN:

Créer un domaine

POST /v1/domains

Paramètre du corpsRequisTaperDescription
domainOuiChaîne (FQDN ou IP)Nom de domaine complet (« FQDN ») ou adresse IP
planNonChaîne (énumérable)Type de forfait (doit être "free", "enhanced_protection", ou "team", par défaut "free" ou le forfait payant actuel de l'utilisateur s'il en utilise un)
catchallNonChaîne (adresses e-mail délimitées) ou booléenCréez un alias fourre-tout par défaut, par défaut true (si true il utilisera l'adresse e-mail de l'utilisateur de l'API comme destinataire, et si false aucun fourre-tout ne sera créé). Si une chaîne est transmise, il s'agit alors d'une liste délimitée d'adresses e-mail à utiliser comme destinataires (séparées par un saut de ligne, un espace et/ou une virgule)
has_adult_content_protectionNonBooléenS'il faut activer la protection du contenu réservé aux adultes Spam Scanner sur ce domaine
has_phishing_protectionNonBooléenS'il faut activer la protection contre le phishing de Spam Scanner sur ce domaine
has_executable_protectionNonBooléenS'il faut activer la protection des exécutables de Spam Scanner sur ce domaine
has_virus_protectionNonBooléenS'il faut activer la protection antivirus Spam Scanner sur ce domaine
has_recipient_verificationNonBooléenDomaine global par défaut pour savoir s'il faut exiger que les destinataires alias cliquent sur un lien de vérification d'e-mail pour que les e-mails transitent
retention_daysNonNombreEntier entre 0 et 30 cela correspond au nombre de jours de rétention pour stocker les e-mails SMTP sortants une fois livrés avec succès ou erronés de manière permanente. La valeur par défaut est 0, ce qui signifie que les e-mails SMTP sortants sont purgés et rédigés immédiatement pour votre sécurité.

Exemple de demande :

curl -X POST https://api.forwardemail.net/v1/domains \
  -u API_TOKEN: \
  -d domain=example.com \
  -d plan=free

Récupérer le domaine

GET /v1/domains/example.com

Exemple de demande :

curl https://api.forwardemail.net/v1/domains/example.com \
  -u API_TOKEN:

Vérifier les enregistrements de domaine

GET /v1/domains/example.com/verify-records

Exemple de demande :

curl https://api.forwardemail.net/v1/domains/example.com/verify-records \
  -u API_TOKEN:

Mettre à jour le domaine

PUT /v1/domains/example.com

Paramètre du corpsRequisTaperDescription
smtp_portNonChaîne ou nombrePort personnalisé à configurer pour le transfert SMTP (la valeur par défaut est "25")
has_adult_content_protectionNonBooléenS'il faut activer la protection du contenu réservé aux adultes Spam Scanner sur ce domaine
has_phishing_protectionNonBooléenS'il faut activer la protection contre le phishing de Spam Scanner sur ce domaine
has_executable_protectionNonBooléenS'il faut activer la protection des exécutables de Spam Scanner sur ce domaine
has_virus_protectionNonBooléenS'il faut activer la protection antivirus Spam Scanner sur ce domaine
has_recipient_verificationNonBooléenDomaine global par défaut pour savoir s'il faut exiger que les destinataires alias cliquent sur un lien de vérification d'e-mail pour que les e-mails transitent
retention_daysNonNombreEntier entre 0 et 30 cela correspond au nombre de jours de rétention pour stocker les e-mails SMTP sortants une fois livrés avec succès ou erronés de manière permanente. La valeur par défaut est 0, ce qui signifie que les e-mails SMTP sortants sont purgés et rédigés immédiatement pour votre sécurité.

Exemple de demande :

curl -X PUT https://api.forwardemail.net/v1/domains/example.com \
  -u API_TOKEN:

Supprimer le domaine

DELETE /v1/domains/:domain_name

Exemple de demande :

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name \
  -u API_TOKEN:

Accepter l'invitation de domaine

GET /v1/domains/:domain_name/invites

Exemple de demande :

curl https://api.forwardemail.net/v1/domains/:domain_name/invites \
  -u API_TOKEN:

Créer une invitation de domaine

POST /v1/domains/example.com/invites

Paramètre du corpsRequisTaperDescription
emailOuiChaîne (e-mail)Adresse e-mail à inviter à la liste des membres du domaine
groupOuiChaîne (énumérable)Groupe avec lequel ajouter l'utilisateur à l'adhésion au domaine (peut être l'un des "admin" ou "user")

Exemple de demande :

curl -X POST https://api.forwardemail.net/v1/domains/example.com/invites \
  -u API_TOKEN: \
  -d "email=user%40gmail.com" \
  -d group=admin

Supprimer l'invitation de domaine

DELETE /v1/domains/:domain_name/invites

Paramètre du corpsRequisTaperDescription
emailOuiChaîne (e-mail)Adresse e-mail à supprimer de la liste des membres du domaine

Exemple de demande :

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/invites \
  -u API_TOKEN:

Mettre à jour le membre du domaine

PUT /v1/domains/example.com/members/:member_id

Paramètre du corpsRequisTaperDescription
groupOuiChaîne (énumérable)Groupe avec lequel mettre à jour l'utilisateur vers l'appartenance au domaine (peut être l'un des "admin" ou "user")

Exemple de demande :

curl -X PUT https://api.forwardemail.net/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 demande :

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/members/:member_id \
  -u API_TOKEN:

Répertorier les alias de domaine

GET /v1/domains/example.com/aliases

Paramètres de chaîne de requêteRequisTaperDescription
qNonChaîne (RegExp pris en charge)Rechercher des alias dans un domaine par nom, étiquette ou destinataire
nameNonChaîne (RegExp pris en charge)Rechercher des alias dans un domaine par nom
recipientNonChaîne (RegExp pris en charge)Rechercher des alias dans un domaine par destinataire

Exemple de demande :

curl https://api.forwardemail.net/v1/domains/example.com/aliases \
  -u API_TOKEN:

Créer un nouvel alias de domaine

POST /v1/domains/example.com/aliases

Paramètre du corpsRequisTaperDescription
nameNonChaîneNom de l'alias (s'il n'est pas fourni ou s'il est vide, un alias aléatoire est généré)
recipientsNonChaîne ou tableauListe des destinataires (doit être une chaîne ou un tableau séparé par un saut de ligne/un espace/une virgule) contenant des adresses e-mail valides, des noms de domaine complets (« FQDN »), des adresses IP et/ou des URL de webhook – et s'ils ne sont pas fournis ou sont vides Array, l'e-mail de l'utilisateur effectuant la requête API sera défini comme destinataire)
descriptionNonChaîneDescription du pseudonyme
labelsNonChaîne ou tableauListe des étiquettes (doit être une chaîne ou un tableau séparé par un saut de ligne/un espace/une virgule)
has_recipient_verificationNonBooléenExiger des destinataires qu'ils cliquent sur un lien de vérification d'e-mail pour que les e-mails transitent (paramètre par défaut du domaine s'il n'est pas explicitement défini dans le corps de la demande)
is_enabledNonBooléenS'il faut activer ou désactiver cet alias (s'il est désactivé, les e-mails ne seront acheminés nulle part mais renverront des codes d'état réussis). Si une valeur est passée, elle est convertie en booléen à l'aide de booléen)
has_imapNonBooléenS'il faut activer ou désactiver le stockage IMAP pour cet alias (s'il est désactivé, les e-mails entrants reçus ne seront pas stockés dans Stockage IMAP. Si une valeur est passée, elle est convertie en booléen à l'aide de booléen)
has_pgpNonBooléenS'il faut activer ou désactiver Cryptage OpenPGP pour Stockage de courrier électronique crypté IMAP/POP3 en utilisant le pseudonyme public_key.
public_keyNonChaîneClé publique OpenPGP au format ASCII Armor (cliquez ici pour voir un exemple; par exemple. Clé GPG pour support@forwardemail.net). Ceci ne s'applique que si vous avez has_pgp mis à true. Apprenez-en davantage sur le chiffrement de bout en bout dans notre FAQ.

Exemple de demande :

curl -X POST https://api.forwardemail.net/v1/domains/example.com/aliases \
  -u API_TOKEN:

Récupérer l'alias du domaine

Vous pouvez récupérer un alias de domaine soit par son id ou son name valeur.

GET /v1/domains/:domain_name/aliases/:alias_id

Exemple de demande :

curl https://api.forwardemail.net/v1/domains/:domain_name/aliases/:alias_id \
  -u API_TOKEN:

GET /v1/domains/:domain_name/aliases/:alias_name

Exemple de demande :

curl https://api.forwardemail.net/v1/domains/:domain_name/aliases/:alias_name \
  -u API_TOKEN:

Mettre à jour l'alias de domaine

PUT /v1/domains/example.com/aliases/:alias_id

Paramètre du corpsRequisTaperDescription
nameNonChaîneAlias
recipientsNonChaîne ou tableauListe des destinataires (doit être une chaîne ou un tableau séparé par un saut de ligne/un espace/une virgule contenant des adresses e-mail valides, des noms de domaine complets (« FQDN »), des adresses IP et/ou des URL de webhook)
descriptionNonChaîneDescription du pseudonyme
labelsNonChaîne ou tableauListe des étiquettes (doit être une chaîne ou un tableau séparé par un saut de ligne/un espace/une virgule)
has_recipient_verificationNonBooléenExiger des destinataires qu'ils cliquent sur un lien de vérification d'e-mail pour que les e-mails transitent (paramètre par défaut du domaine s'il n'est pas explicitement défini dans le corps de la demande)
is_enabledNonBooléenS'il faut activer ou désactiver cet alias (s'il est désactivé, les e-mails ne seront acheminés nulle part mais renverront des codes d'état réussis)
has_imapNonBooléenS'il faut activer ou désactiver le stockage IMAP pour cet alias (s'il est désactivé, les e-mails entrants reçus ne seront pas stockés dans Stockage IMAP. Si une valeur est passée, elle est convertie en booléen à l'aide de booléen)
has_pgpNonBooléenS'il faut activer ou désactiver Cryptage OpenPGP pour Stockage de courrier électronique crypté IMAP/POP3 en utilisant le pseudonyme public_key.
public_keyNonChaîneClé publique OpenPGP au format ASCII Armor (cliquez ici pour voir un exemple; par exemple. Clé GPG pour support@forwardemail.net). Ceci ne s'applique que si vous avez has_pgp mis à true. Apprenez-en davantage sur le chiffrement de bout en bout dans notre FAQ.

Exemple de demande :

curl -X PUT https://api.forwardemail.net/v1/domains/example.com/aliases/:alias_id \
  -u API_TOKEN:

Supprimer l'alias de domaine

DELETE /v1/domains/:domain_name/aliases/:alias_id

Exemple de demande :

curl -X DELETE https://api.forwardemail.net/v1/domains/:domain_name/aliases/:alias_id \
  -u API_TOKEN: