Version: v1
Description: Permite validar varios aspectos de la configuracion de servidores de correo (MX, DMARC, DKIM, validacion de PTR y chequeo de relay abierto).
Una API REST basada en PHP para verificar configuraciones relacionadas con servidores de correo electrónico. La API incluye endpoints para revisar registros MX, DMARC, DKIM, validación de variables PTR (Match), y comprobación de Open Relay.
Todas las consultas de DNS se realizan directamente utilizando servidores DNS que no guardan cache para aumentar la confiabilidad de las respuestas.
Todos los endpoints responden a peticiones GET y devuelven datos en formato JSON. Se utiliza reescritura de URLs para que no sea necesario incluir el archivo index.php.
/mx?domain=tudominio.com
Ejemplo de Petición:
curl "http://api.latinapi.com/api/emailapi/mx?domain=google.com" -H "X-Api-Key: TU_LLAVE_API_PRIVADA"Respuesta Exitosa:
{
"domain": "google.com",
"mx_records": [
{
"preference": 10,
"exchange": "smtp.google.com"
}
]
}/dmarc?domain=tudominio.com
Ejemplo de Petición:
curl "http://api.latinapi.com/api/emailapi/dmarc?domain=google.com" -H "X-Api-Key: TU_LLAVE_API_PRIVADA"Respuesta Exitosa:
{
"domain": "google.com",
"status": "valid",
"record": "v=DMARC1; p=reject; rua=mailto:postmaster@google.com"
}/dkim?domain=tudominio.com&selector=selector
Ejemplo de Petición:
curl "http://api.latinapi.com/api/emailapi/dkim?domain=google.com&selector=20230601" -H "X-Api-Key: TU_LLAVE_API_PRIVADA"Respuesta Exitosa:
{
"domain": "google.com",
"selector": "20230601",
"status": "valid",
"record": "v=DKIM1; k=rsa; p=MIIBI..."
}/ptrmatch?hostname=smtp.tudominio.com
Este endpoint obtiene la IP para el hostname provisto y luego realiza una búsqueda inversa (PTR) para comprobar si coinciden.
Ejemplo de Petición:
curl "http://api.latinapi.com/api/emailapi/ptrmatch?hostname=smtp.google.com" -H "X-Api-Key: TU_LLAVE_API_PRIVADA"Respuesta Exitosa:
{
"hostname": "smtp.google.com",
"ip": "1.2.3.4",
"ptr": "smtp.google.com",
"match": true
}/openrelay?server=smtp.tudominio.com
Comprueba si el servidor permite enviar correos hacia otros dominios externos sin autenticación (Open Relay). También incluye el tiempo de respuesta.
Ejemplo de Petición:
curl "http://api.latinapi.com/api/emailapi/openrelay?server=smtp.google.com" -H "X-Api-Key: TU_LLAVE_API_PRIVADA"Respuesta Exitosa:
{
"server": "smtp.google.com",
"is_open_relay": false,
"response_time_ms": 125.43
}A continuación se muestran ejemplos de cómo consumir la API en diferentes lenguajes de programación. En estos ejemplos consultamos el endpoint /mx para el dominio google.com.
fetch('http://api.latinapi.com/api/emailapi/mx?domain=google.com',{
method: 'GET',
headers: {
'Accept': 'application/json',
'X-Api-Key: TU_LLAVE_API_PRIVADA'
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));import requests
url = "http://api.latinapi.com/api/emailapi/mx"
params = {"domain": "google.com"}
headers = {
'Accept': 'application/json',
'X-Api-Key: TU_LLAVE_API_PRIVADA'
}
try:
response = requests.get(url, params=params, headers=headers)
response.raise_for_status()
data = response.json()
print(data)
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
<?php
$url = "http://api.latinapi.com/api/emailapi/mx?domain=google.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"X-Api-Key: TULLAVEAPI"
]);
$response = curl_exec($ch);
if(curl_errno($ch)){
echo 'Error: ' . curl_error($ch);
} else {
$data = json_decode($response, true);
print_r($data);
}
curl_close($ch);
?>