Probar el proveedor de correo electrónico
POST /v1/email-provider:test · permiso email-provider:write · todos los planes
Comprueba la conexión guardada sin enviar ningún mensaje:
customer_smtp: se conecta a su servidor, configura TLS, se autentica y cierra la conexión.customer_api: llama a un endpoint de solo lectura de su proveedor con la clave guardada.
La respuesta es 200 OK aunque la comprobación falle: result es ok o un código de error fijo. El texto de respuesta del propio servidor nunca se devuelve. El resultado se guarda en last_test_at y last_test_result de get; el ETag no cambia. Cada prueba escribe un registro de auditoría (email_provider.tested).
Un entorno puede ejecutar 10 pruebas por hora. El cuerpo es opcional; si envía uno, debe ser un objeto JSON vacío.
Respuesta
| Campo | Tipo | Descripción |
|---|---|---|
result |
string | ok o un código de error (abajo). |
tested_at |
string | Momento de la prueba. |
version |
integer | La versión de configuración que se probó. |
{
"result": "smtp_auth_failed",
"tested_at": "2026-10-19T09:30:00Z",
"version": 4
}
Resultados habituales:
| Resultado | Significado |
|---|---|
ok |
Conectado y autenticado. |
smtp_auth_failed |
El servidor SMTP rechazó el nombre de usuario o la contraseña. |
smtp_auth_unsupported |
El servidor no ofrece ningún mecanismo AUTH compatible. |
smtp_tls_required |
El servidor en el puerto 587 no ofrece STARTTLS. |
smtp_tls_invalid |
El certificado del servidor no es válido para el nombre de host. |
smtp_temporary, smtp_rejected |
El servidor respondió con un error temporal o permanente. |
esp_auth_failed |
El proveedor rechazó la clave. |
esp_access_denied |
El proveedor rechazó la clave o la clave carece de acceso de lectura al endpoint comprobado (por ejemplo, ses:GetAccount, o una clave de envío de dominio de Mailgun). Es posible que el envío siga funcionando. |
esp_rate_limited, esp_temporary, esp_rejected |
El proveedor limitó la frecuencia de solicitudes, no está disponible temporalmente o rechazó la solicitud. |
egress_dns_failed, egress_dns_private, egress_ssrf_blocked, egress_connect_failed, egress_timeout, egress_tls_invalid |
El host no se resuelve, se resuelve a una dirección privada, está bloqueado, no se pudo alcanzar a tiempo o (proveedores de API) presentó un certificado no válido. |
delivery_credentials_invalid |
La credencial guardada no se puede usar; guárdela de nuevo. |
delivery_mode_unavailable |
El envío saliente no está habilitado en esta implementación. |
Errores
| HTTP | código | Cuándo |
|---|---|---|
| 400 | unknown_field |
El cuerpo no es un objeto JSON vacío. |
| 409 | conflict |
El modo no tiene una conexión que probar (platform_default, customer_webhook, platform_managed_domain; pruebe un endpoint de webhook con Probar un endpoint de webhook; compruebe un dominio de remitente con verificar), o la configuración cambió durante la prueba. |
| 429 | rate_limited |
Se alcanzó el límite horario de pruebas o el límite de frecuencia de la API; reintente después del periodo indicado en Retry-After. |
| 401 | unauthenticated |
La credencial falta, no es válida o fue revocada. |
| 403 | insufficient_permissions |
La credencial carece del permiso requerido. |
| 503 | service_unavailable |
Una dependencia no está disponible temporalmente; reintente después del periodo indicado en Retry-After. |
Ejemplo
curl -X POST https://api.eu.keenauth.com/v1/email-provider:test \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
CLI: keenauth email-provider test