Saltar al contenido principal

Proveedor de correo electrónico para códigos de verificación de Casdoor: Brevo SMTP, Resend, SendGrid, ACS Email y SES

· 11 min de lectura
Yang Luo
Casdoor Maintainer

Casdoor envía códigos de verificación de registro, enlaces de restablecimiento de contraseña y enlaces mágicos a través de un proveedor de correo electrónico. Tiene tipos de API nativos para Resend, SendGrid y Azure Communication Services (ACS) Email, un tipo Default SMTP que funciona con cualquier retransmisor SMTP (su propio servidor, Google Workspace, Microsoft 365, Brevo, Amazon SES), y un tipo Custom HTTP Email para cualquier otra API HTTP. Si desea un nivel gratuito y una configuración breve, comience con Resend o Brevo. Si ya opera en AWS o Azure, SES o ACS mantiene la facturación en un solo lugar. Independientemente de lo que elija, el trabajo de entregabilidad es el mismo: un dominio remitente con SPF y DKIM que coincidan con la dirección De.

Las opciones de un vistazo​

Los niveles gratuitos y los precios fueron verificados el 02-11-2026 en la página de precios propia de cada proveedor.

ProveedorAPI o SMTPNivel gratuito (verificado 02-11-2026)Configuración del dominio remitenteTipo de Casdoor
Su propio servidor de correoSMTPUsted lo gestionaUsted publica registros SPF, DKIM y DMARC, y necesita DNS directo e inverso para la IPDefault
Google Workspace (smtp.gmail.com)SMTP con contraseña de aplicaciónParte de la suscripción de Workspace, 2,000 mensajes por díaSu dominio de WorkspaceDefault
Microsoft 365 (smtp.office365.com)SMTP AUTHParte de la suscripciónSu dominio de Microsoft 365Default
BrevoRetransmisor SMTP (smtp-relay.brevo.com)300 correos electrónicos por díaCódigos de verificación de Brevo (TXT), registros DKIM y DMARCDefault
ResendAPI3,000 correos electrónicos por mes, 100 por díaRegistros SPF y DKIM generados por Resend, luego DMARCResend
SendGridAPIPrueba de 60 días, 100 correos electrónicos por díaAutenticación de dominio: registros CNAME para SPF y DKIM, TXT para DMARCSendGrid
Azure Communication Services EmailAPINo listado; $0.00025 por correo electrónico más $0.00012 por MBSubdominio gestionado por Azure, o un dominio personalizado con SPF y DKIMAzure ACS
Amazon SESInterfaz SMTPSin cuota exclusiva de SES; las cuentas nuevas de AWS obtienen créditos de Free Tier que SES puede usarIdentidad verificada para cada dirección DeDefault
Cualquier otra API HTTPHTTPDepende del servicioDepende del servicioCustom HTTP Email

La visión general de proveedores de correo electrónico en la documentación lista los mismos tipos y los campos que utiliza cada uno.

SMTP: su propio servidor, Google Workspace, Microsoft 365​

El tipo Default toma un host, puerto, nombre de usuario y contraseña. El modo SSL Auto usa TLS implícito en el puerto 465 y STARTTLS en otros puertos, lo cual cubre casi todos los retransmisores mencionados abajo.

Con su propio servidor, SPF, firma DKIM, DNS inverso y reputación de IP son responsabilidad suya. Google requiere registros DNS directos e inversos (PTR) válidos para la IP de envío.

Google Workspace documenta smtp.gmail.com en el puerto 465 o 587, autenticándose con la dirección completa de Workspace y una contraseña de aplicación, con un límite de 2,000 mensajes por día.

Microsoft 365 es el que se debe evitar para nuevas configuraciones. El proveedor SMTP de Casdoor se autentica con un nombre de usuario y contraseña, lo cual es autenticación Basic para SMTP AUTH. Microsoft ha anunciado planes para retirar la autenticación Basic para SMTP AUTH en Exchange Online, y ya ha desactivado SMTP AUTH en inquilinos que no lo estaban usando. Verifique la línea de tiempo más reciente en el anuncio siguiente antes de construir sobre esto.

Brevo SMTP​

Brevo envía correo transaccional a través de un retransmisor SMTP estándar, por lo que usa el tipo Default. La mayoría de los problemas de configuración provienen del inicio de sesión SMTP de Brevo:

  • El servidor es smtp-relay.brevo.com, en el puerto 587, 465 o 2525. El puerto 465 necesita SSL, lo cual Auto maneja.
  • El inicio de sesión SMTP no siempre es el correo electrónico de su cuenta. Dependiendo de cuándo se creó la cuenta, es ya sea su correo de inicio de sesión o una dirección generada como [ID]@smtp-brevo.com, y se muestra en la página SMTP en Brevo. Cambiar el correo electrónico de su cuenta no lo cambia.
  • La contraseña es una SMTP key, no una API key.

En Casdoor, establece Type en Default y coloca esos valores en Host, Port, Username y Password. La guía de Brevo tiene capturas de pantalla. Para el dominio, Brevo solicita su propio registro de verificación TXT, DKIM y DMARC; SPF solo se necesita con una IP dedicada.

Resend​

El tipo Resend solo necesita una API key en Secret key, además de una From address en un dominio verificado. Deja vacíos Host, Port y Username. Casdoor formatea el remitente como Name <address> desde From name, o desde el nombre para mostrar de la organización cuando From name está vacío.

Dos cosas que debes saber antes de probar. Primero, el remitente compartido onboarding@resend.dev solo puede enviar a la dirección de correo electrónico de tu propia cuenta de Resend; cualquier otro destinatario recibirá un error 403. Segundo, verificar tu propio dominio implica agregar los registros SPF y DKIM que genera Resend, y Resend recomienda enviar desde un subdominio para mantener su reputación separada. El plan gratuito cubre 3,000 correos al mes con un límite de 100 por día; el plan Pro comienza en $20 al mes para 50,000. Consulta la guía de Resend.

SendGrid​

El tipo SendGrid utiliza una API key. Deja vacíos Host y Endpoint y Casdoor usará la API estándar de envío de SendGrid; completa ambos solo si necesitas un endpoint diferente. Casdoor trata cualquier cosa que no sea 202 Accepted como un fallo y muestra los mensajes de error devueltos por SendGrid, lo cual ayuda cuando un remitente aún no está verificado.

La página de precios de SendGrid enumera una prueba gratuita de 60 días con 100 correos al día, luego Essentials desde $19.95 al mes. La autenticación de dominio con seguridad automatizada agrega un CNAME para SPF y DKIM y un registro TXT para DMARC. Consulta la guía de SendGrid.

ACS Email (Azure Communication Services)​

El tipo Azure ACS toma el endpoint del recurso como Host y la clave de acceso como Secret key; Casdoor firma cada solicitud con esa clave. Azure te ofrece un subdominio administrado de un clic bajo azurecomm.net con la autenticación ya configurada, y Microsoft sugiere usarlo para desarrollo y cambiar a un dominio personalizado, con sus registros SPF y DKIM, para el lanzamiento. No hay nivel gratuito en la página de precios: $0.00025 por correo más $0.00012 por MB transferido. Consulta la guía de Azure ACS.

Amazon SES​

Casdoor no tiene un tipo de API SES, así que usa la interfaz SMTP de SES con el tipo Default. El host es el endpoint SMTP de la región, como email-smtp.us-east-1.amazonaws.com; SES acepta STARTTLS en los puertos 25, 587 o 2587 y TLS implícito en los puertos 465 o 2465. El usuario y la contraseña SMTP son credenciales SMTP que generas en SES. No son tus claves de acceso de AWS y son diferentes en cada región.

Las cuentas nuevas comienzan en el sandbox de SES: el correo va solo a direcciones verificadas, máximo 200 mensajes por 24 horas y uno por segundo. Solicita acceso de producción antes de que los usuarios reales se registren. SES cobra $0.10 por cada 1,000 correos salientes a su tarifa individual, sin cuota mínima.

Correo HTTP personalizado​

Para un servicio sin un tipo nativo, Custom HTTP Email envía fromAddress, fromName, toAddress (o toAddresses para varios destinatarios), subject y content como cuerpo de formulario o JSON, con encabezados que definas. Puedes renombrar cada campo para que coincida con la API de destino. Casdoor solo cuenta HTTP 200 como éxito, por lo que una API que responde 202 Accepted aparecerá como un error; un pequeño adaptador delante soluciona eso. Consulta Enviar correo a través de tu propia API HTTP.

Conceptos básicos de entregabilidad para correos de autenticación​

Los códigos de verificación son inútiles si terminan en spam. Las reglas importantes:

  • SPF y DKIM. Google requiere que todos los remitentes hacia Gmail usen SPF o DKIM. Por encima de 5,000 mensajes al día requiere ambos, además de DMARC (se acepta una política p=none). Configura los tres desde el principio.
  • Alineación. El dominio en el encabezado From debe coincidir con el dominio SPF o el dominio DKIM, o DMARC fallará. Esta es la razón por la que cada proveedor te hace verificar el dominio desde el que envías.
  • Un subdominio separado. Yahoo recomienda separar el correo transaccional del correo de marketing mediante IP o dominio DKIM, y Resend recomienda subdominios. Algo como auth.example.com evita que un mal boletín afecte tus restablecimientos de contraseña.
  • TLS y tasa de spam. Google requiere TLS y pide mantener la tasa de spam reportada por debajo del 0.3%, idealmente por debajo del 0.1%.
  • No se necesita encabezado de cancelación de suscripción. La FAQ de Google dice que la cancelación de suscripción con un clic se aplica al correo de marketing, y nombra los mensajes de restablecimiento de contraseña como un ejemplo de correo transaccional excluido.
  • Contenido simple. Casdoor envía la plantilla como un único cuerpo HTML, sin una parte de texto plano separada, para cada tipo integrado. Mantén el HTML ligero, pon el código en texto plano y muestra el enlace completo como texto junto al botón, como lo hace el correo de magic link integrado de Casdoor. Usa directamente tu origen de Casdoor en lugar de un acortador de enlaces, para que el dominio del enlace coincida con tu marca.

Configurar y probar el proveedor en Casdoor​

  1. Ve a Identity > Providers, agrega un proveedor, establece Category en Email y elige el Type de la tabla anterior.
  2. Establece From address y, opcionalmente, From name.
  3. Write Email title and Email content. The content can use %s for the code, %{user.friendlyName} for the user's name, and %link inside a <reset-link> block for the password reset link. Magic link emails use %link and %expireTime; if your content has no %link, Casdoor sends its own magic link email instead. The templates section has examples. Codes and magic links expire after verificationCodeTimeout in conf/app.conf, which defaults to 10 minutes and matches the default template text; if you change the timeout, change the wording in your template too.
  4. Haz clic en Test SMTP Connection para abrir una conexión sin enviar (solo tipos SMTP), luego ingresa una dirección en Test Email y haz clic en Send Testing Email. La prueba usa los valores del formulario, guardados o no, con %s reemplazado por 123456 y el bloque de enlace de restablecimiento eliminado.
  5. Agregue el proveedor a la aplicación con una regla como Signup, Forget Password, Magic link o All. Puede usar diferentes proveedores para diferentes reglas. Consulte Agregar proveedores a una aplicación.
  6. Configure origin en conf/app.conf. Sin él, a menos que la solicitud provenga de un host de bucle invertido como localhost, Casdoor omite el enlace de restablecimiento en los correos electrónicos de restablecimiento de contraseña y se niega a enviar enlaces mágicos. Consulte Iniciar sesión con un enlace mágico.

Para desarrollo local, apunte un proveedor Default a un servidor SMTP falso en lugar de una cuenta real; MailHog vs Mailpit cubre esa configuración.

Referencias​