API de messagerie

À l'heure actuelle, nous n'avons pas encore publié de wrappers d'API, mais nous prévoyons de le faire dans un proche avenir. 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
Javascriptsuper-agent (nous sommes mainteneurs)
Node.jssuper-agent (nous sommes mainteneurs)
Allernet / http
.NETResteSharp

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

Tous les terminaux 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 que c'est.

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 indisponible
504Délai d'expiration de la passerelle
Pointe: Si vous recevez un code de statut 5xx (ce qui ne devrait pas arriver), veuillez nous contacter à 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 les derniers paramètres régionaux détectés de l'utilisateur effectuant la demande d'API. Vous pouvez remplacer cela en passant un personnalisé Accept-Language entête. N'hésitez pas à l'essayer en utilisant la liste déroulante 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.

Créer un compte

POST /v1/account

Paramètre de corpsObligatoireTaperLa description
emailOuiChaîne (e-mail)Adresse électronique
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 de corpsObligatoireTaperLa description
emailNonChaîne (e-mail)Adresse électronique
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 se trouvent sur Mon compte → Domaines → Paramètres → Configuration SMTP sortant. Vous devez vous assurer de la configuration de DKIM, Return-Path et DMARC pour l'envoi de SMTP sortant avec votre domaine.

Lister les e-mails

Notez que ce point de terminaison ne renvoie pas un 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 de terminaison 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ètre de chaîne de requêteObligatoireTaperLa description
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 pour créer un e-mail s'inspire et exploite la configuration des options de message de Nodemailer. Veuillez vous reporter au Configuration des messages Nodemailer pour tous les paramètres corporels ci-dessous.

A noter 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 complet brut, y compris les en-têtes ou passez les options de paramètres de corps individuels ci-dessous.

POST /v1/emails

Paramètre de corpsObligatoireTaperLa description
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îneL'objet de l'e-mail.
textNonChaîne ou tamponLa version en clair du message.
htmlNonChaîne ou tamponLa version HTML du message.
attachmentsNonDéployerUn 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 Les champs les plus avancés de Nodemailer).
replyToNonChaîneL'adresse e-mail pour l'en-tête "Répondre à".
inReplyToNonChaîneLe Message-ID auquel le message répond.
referencesNonChaîne ou tableauListe séparée par des espaces ou 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 à Apple Watch du message (selon les docs Nodemailer, les montres les plus récentes n'exigent pas qu'il soit réglé).
ampNonChaîneUne version HTML spécifique à AMP4EMAIL du message (voir L'exemple de Nodemailer).
icalEventNonObjetUn événement iCalendar à utiliser comme contenu de message alternatif (voir Calendrier des événements de Nodemailer).
alternativesNonDéployerUn tableau de contenu de message alternatif (voir Contenu alternatif de Nodemailer).
encodingNonChaîneEncodage pour le texte et les 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 d'un message généré par Nodemailer - voir Source personnalisée de Nodemailer).
textEncodingNonChaîneEncodage qui est forcé d'être utilisé 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é pour 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 fixé 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 avoir plus de 30 jours d'avance sur 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 des e-mails définira le statut sur "rejected" (et par la suite ne pas le traiter 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. Par conséquent, vous devez conserver une copie des e-mails SMTP sortants dans votre client, votre base de données ou votre application. Vous pouvez référencer notre valeur d'identifiant de messagerie dans votre base de données si vous le souhaitez - cette valeur est renvoyée à la fois par Créer un e-mail et Récupérer l'e-mail points de terminaison.

DELETE /v1/emails/:id

Exemple de demande:

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

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

Répertorier les domaines

GET /v1/domains

Paramètre de chaîne de requêteObligatoireTaperLa description
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 de corpsObligatoireTaperLa description
domainOuiChaîne (FQDN ou IP)Nom de domaine complet ("FQDN") ou adresse IP
planNonChaîne (énumérable)Type de régime (doit être "free", "enhanced_protection", ou "team", par défaut à "free" ou le forfait payant actuel de l'utilisateur, le cas échéant)
catchallNonChaîne (adresses e-mail délimitées) ou booléenCréer 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 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éenIndique s'il faut activer la protection du contenu pour adultes de Spam Scanner sur ce domaine
has_phishing_protectionNonBooléenIndique s'il faut activer la protection anti-hameçonnage Spam Scanner sur ce domaine
has_executable_protectionNonBooléenActiver ou non la protection de l'exécutable Spam Scanner sur ce domaine
has_virus_protectionNonBooléenIndique s'il faut activer la protection antivirus Spam Scanner sur ce domaine
has_recipient_verificationNonBooléenDomaine global par défaut pour s'il faut exiger que les destinataires d'alias cliquent sur un lien de vérification d'e-mail pour que les e-mails transitent

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 un 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 de corpsObligatoireTaperLa description
smtp_portNonChaîne ou nombrePort personnalisé à configurer pour le transfert SMTP (la valeur par défaut est "25")
has_adult_content_protectionNonBooléenIndique s'il faut activer la protection du contenu pour adultes de Spam Scanner sur ce domaine
has_phishing_protectionNonBooléenIndique s'il faut activer la protection anti-hameçonnage Spam Scanner sur ce domaine
has_executable_protectionNonBooléenActiver ou non la protection de l'exécutable Spam Scanner sur ce domaine
has_virus_protectionNonBooléenIndique s'il faut activer la protection antivirus Spam Scanner sur ce domaine
has_recipient_verificationNonBooléenDomaine global par défaut pour s'il faut exiger que les destinataires d'alias cliquent sur un lien de vérification d'e-mail pour que les e-mails transitent

Exemple de demande:

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

Supprimer un 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 au 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 de corpsObligatoireTaperLa description
emailOuiChaîne (e-mail)Adresse e-mail pour inviter à la liste des membres du domaine
groupOuiChaîne (énumérable)Groupe avec lequel ajouter l'utilisateur à l'appartenance 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 au domaine

DELETE /v1/domains/:domain_name/invites

Paramètre de corpsObligatoireTaperLa description
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 de corpsObligatoireTaperLa description
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 le 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ètre de chaîne de requêteObligatoireTaperLa description
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 de corpsObligatoireTaperLa description
nameNonChaîneNom d'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 séparé par un saut de ligne/espace/virgule Chaîne ou tableau d'adresses e-mail valides, de noms de domaine complets ("FQDN"), d'adresses IP et/ou d'URL de webhook - et s'il n'est pas fourni ou est vide Array, l'e-mail de l'utilisateur effectuant la demande d'API sera défini comme destinataire)
descriptionNonChaîneDescription de l'alias
labelsNonChaîne ou tableauListe des étiquettes (doit être un saut de ligne / espace / chaîne ou tableau séparé par des virgules)
has_recipient_verificationNonBooléenS'il faut activer pour demander aux destinataires de cliquer sur un lien de vérification d'e-mail pour que les e-mails soient acheminés (par défaut, le paramètre du domaine s'il n'est pas explicitement défini dans le corps de la demande)
is_enabledNonBooléenIndique s'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). Par défaut à true, mais si une valeur est transmise, elle est convertie en booléen à l'aide booléen)

Exemple de demande:

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

Récupérer l'alias de domaine

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

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 de corpsObligatoireTaperLa description
nameNonChaîneSurnom
recipientsOuiChaîne ou tableauListe des destinataires (doit être un saut de ligne / un espace / une chaîne séparée par des virgules d'adresses e-mail valides, des noms de domaine complets ("FQDN"), des adresses IP et / ou des URL de webhook)
descriptionNonChaîneDescription de l'alias
labelsNonChaîne ou tableauListe des étiquettes (doit être un saut de ligne / espace / chaîne ou tableau séparé par des virgules)
has_recipient_verificationNonBooléenS'il faut activer pour demander aux destinataires de cliquer sur un lien de vérification d'e-mail pour que les e-mails soient acheminés (par défaut, le paramètre du domaine s'il n'est pas explicitement défini dans le corps de la demande)
is_enabledNonBooléenIndique s'il faut activer ou non cet alias (s'il est désactivé, les e-mails ne seront acheminés nulle part mais renverront les codes d'état réussis)

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: