API de Email — Validar una dirección de correo electrónico (REST)

Support DQE
Support DQE
  • Actualización
Validación de Email - API Estándar

El endpoint lookupemail valida una dirección de correo electrónico completa y devuelve su sintaxis, dominio y estado de buzón, con una sugerencia de corrección opcional.

Cuándo usar este endpoint - Llame a lookupemail una vez que el usuario haya introducido (o abandonado) una dirección de correo completa, para confirmar que es válida y entregable antes de almacenarla. Para sugerir direcciones mientras el usuario todavía está escribiendo, consulte API de Email — Sugerir una dirección de correo electrónico (REST) →

lookupemail

Solicitud

Se admiten tanto GET como POST.

{SERVER_ADDRESS} y {LICENCE_CODE} son proporcionados por DQE al crear la cuenta. Contacte con su gestor de cuenta DQE para obtener estas credenciales.
GEThttps://{SERVER_ADDRESS}/v1/lookupemail/?Email={EMAIL}&Licence={LICENCE_CODE}&Rectify={RECTIFY}&CheckUser={CHECK_USER}&TimeOut={TIME_OUT}

Ejemplos de código

Dirección válida, sintaxis y dominio OK

curl "https://{SERVER_ADDRESS}/v1/lookupemail/?Email=toto%40gmail.com&Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/v1/lookupemail/?" + new URLSearchParams({ Email: "toto@gmail.com", Licence: "{LICENCE_CODE}" })) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.get( "https://{SERVER_ADDRESS}/v1/lookupemail/", params={ "Email": "toto@gmail.com", "Licence": "{LICENCE_CODE}", }, ) print(response.json())
<?php $params = http_build_query([ 'Email' => 'toto@gmail.com', 'Licence' => '{LICENCE_CODE}', ]); $ch = curl_init("https://{SERVER_ADDRESS}/v1/lookupemail/?{$params}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); axios.get('https://{SERVER_ADDRESS}/v1/lookupemail/', { params: { Email: 'toto@gmail.com', Licence: '{LICENCE_CODE}' } }) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String url = "https://{SERVER_ADDRESS}/v1/lookupemail/" + "?Email=toto%40gmail.com&Licence={LICENCE_CODE}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .GET() .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var url = "https://{SERVER_ADDRESS}/v1/lookupemail/" + "?Email=toto%40gmail.com&Licence={LICENCE_CODE}"; var response = await client.GetAsync(url); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" ) func main() { url := "https://{SERVER_ADDRESS}/v1/lookupemail/" + "?Email=toto%40gmail.com&Licence={LICENCE_CODE}" resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }
POSThttps://{SERVER_ADDRESS}/v1/lookupemail/

Envíe todos los parámetros en el cuerpo de la solicitud usando Content-Type: application/x-www-form-urlencoded. La dirección del servidor permanece en la URL.

Ejemplos de código

Dirección válida, sintaxis y dominio OK

curl -X POST "https://{SERVER_ADDRESS}/v1/lookupemail/" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "Email=toto@gmail.com" \ -d "Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/v1/lookupemail/", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ Email: "toto@gmail.com", Licence: "{LICENCE_CODE}" }) }) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.post( "https://{SERVER_ADDRESS}/v1/lookupemail/", data={ "Email": "toto@gmail.com", "Licence": "{LICENCE_CODE}", }, ) print(response.json())
<?php $ch = curl_init("https://{SERVER_ADDRESS}/v1/lookupemail/"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ 'Email' => 'toto@gmail.com', 'Licence' => '{LICENCE_CODE}', ])); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); const qs = require('querystring'); axios.post('https://{SERVER_ADDRESS}/v1/lookupemail/', qs.stringify({ Email: 'toto@gmail.com', Licence: '{LICENCE_CODE}' })) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String form = "Email=toto%40gmail.com&Licence={LICENCE_CODE}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{SERVER_ADDRESS}/v1/lookupemail/")) .header("Content-Type", "application/x-www-form-urlencoded") .POST(HttpRequest.BodyPublishers.ofString(form)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var form = new Dictionary<string, string> { ["Email"] = "toto@gmail.com", ["Licence"] = "{LICENCE_CODE}" }; var response = await client.PostAsync( "https://{SERVER_ADDRESS}/v1/lookupemail/", new FormUrlEncodedContent(form)); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" "net/url" ) func main() { form := url.Values{} form.Set("Email", "toto@gmail.com") form.Set("Licence", "{LICENCE_CODE}") resp, err := http.PostForm("https://{SERVER_ADDRESS}/v1/lookupemail/", form) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }

Parámetros

Parámetro Descripción Obl / Opc
Email Dirección de correo electrónico a validar. Obligatorio
Licence Su clave de licencia DQE o token OAuth2. Contacte con soporte si aún no dispone de una. Obligatorio
Rectify Y para recibir una sugerencia de corrección cuando la sintaxis no sea válida o el dominio sea desconocido.
Por defecto: N (no se sugiere ninguna corrección)
Opcional
CheckUser N si no desea verificar la parte antes del signo @ (nombre de usuario).
Por defecto: Y (se verifica el nombre de usuario)
Opcional
TimeOut Tiempo máximo de consulta para la verificación, en segundos. Ejemplo: 0.5 para 500 ms.
Por defecto: 6
Opcional

Respuesta

En caso de éxito, la API devuelve un objeto JSON que contiene el número de resultados y un array de las direcciones de correo validadas.

Lectura de negocio: IdError y ActivityCode contienen el resultado detallado de la validación — vea la lista completa en la referencia de códigos de respuesta de la API. SuggestedEmail solo se completa cuando Rectify=Y y se encontró una corrección.
Clave Descripción Tipo
Found Número de direcciones de correo devueltas. Integer
Emails Array de resultados de validación, una entrada por cada dirección de correo enviada. Array
ActivityCode Estado de actividad de la dirección de correo. Vea la referencia de códigos de respuesta de la API. String
IdError Código de retorno de validación. Vea la referencia de códigos de respuesta de la API. String
Corrected 1 si se aplicó una corrección; 0 en caso contrario. Integer
SuggestedEmail Dirección de correo corregida, devuelta cuando Rectify=Y y se encontró una corrección. String
InputEmail Dirección de correo tal como se envió en la solicitud. String

Ejemplo de respuesta

Dirección válida, sin corrección aplicada
{ "Found": 1, "Emails": [ { "ActivityCode": "", "IdError": "02", "Corrected": 0, "SuggestedEmail": "toto@gmail.com", "InputEmail": "toto@gmail.com" } ] }

Códigos de respuesta

Códigos IdError

Código Descripción Mensaje de interfaz sugerido
00 Correo válido. Correo válido
01 Correo correcto pero no se pudo verificar el nombre. Correo válido
02 No se encontró la dirección de correo para este dominio. Revise su dirección de correo
03 Buzón lleno (rebote suave). Revise su dirección de correo
04 Correo vacío. Revise su dirección de correo
91 Error de sintaxis. Revise su dirección de correo
92 Dominio desconocido. Revise su dirección de correo
93 Correo o dominio en lista negra. Revise su dirección de correo
94 Nombre de usuario no autorizado. Revise su dirección de correo
95 Dirección de correo temporal desechable. Revise su dirección de correo
99 Servicio no disponible. Correo válido

Códigos ActivityCode

Considere M como el mes actual.

Código Descripción
100 El correo se entregó una vez.
200 El correo es válido.
201 El correo estuvo activo el mes pasado.
202 El correo estuvo activo entre M-1 y M-2.
203 El correo estuvo activo entre M-2 y M-3.
204 El correo estuvo activo entre M-3 y M-4.
206 El correo estuvo activo entre M-4 y M-6.
209 El correo estuvo activo entre M-6 y M-9.
212 El correo estuvo activo entre M-9 y M-12.
300 Correo inactivo.

Errores

HTTP Tipo de error Cuerpo de la respuesta
400 Parámetro obligatorio ausente o vacío (ej. Email)
{"status": 400, "message": "Missing parameters", "details": "Email", "error": "bad request"}
401 Clave de licencia inválida o no autorizada
{"status": 401, "message": "Your licence is not allowed to cover this functionnality", "details": "{WRONG LICENSE}", "error": "unauthorized_client"}

Probar la API

Haga clic en el botón de abajo para probar este endpoint en vivo en su navegador.

Abrir consola

Ver también

Relacionada con

¿Fue útil este artículo?

Usuarios a los que les pareció útil: 0 de 0