Funciones
Informes por email
Runlight envía resúmenes semanales o mensuales a través de tu propio servicio de correo, en el idioma de cada lector.
Runlight puede enviar por correo un resumen de un sitio cada semana o cada mes. Cada resumen incluye la frase principal, las seis cifras frente al periodo anterior, las páginas, fuentes y países principales, y las conversiones con sus ingresos. Se envía desde tu propia dirección, a través de un servicio de correo que ya usas.
1. Configurar el servicio de correo
En Ajustes, Servicio de correo, elige un servicio y escribe sus claves junto con la dirección desde la que salen los informes. Enviar prueba comprueba que funciona. Un solo servicio de correo sirve a todos los sitios de la instalación.
| Servicio | Qué necesita |
|---|---|
| Amazon SES | Región, ID de clave de acceso y clave de acceso secreta (un usuario de IAM con permiso para ses:SendEmail) |
| Resend | Clave de API |
| Postmark | Token de API del servidor y, opcionalmente, el flujo de mensajes |
| SendGrid | Clave de API |
| Mailgun | Dominio de envío, clave de API y región (US o EU) |
| Brevo | Clave de API |
| Mailjet | Clave de API y clave secreta |
| MailerSend | Token de API |
| SparkPost | Clave de API y región (US o EU) |
| SMTP | Host, puerto, seguridad (STARTTLS, TLS o ninguna) y, opcionalmente, un usuario y una contraseña |
| Webhook | Una URL a la que Runlight envía cada correo como JSON y, opcionalmente, un secreto de firma |
La dirección de envío tiene que ser una que tu servicio te deje usar, normalmente en un dominio que hayas verificado con él.
Las claves se guardan cifradas con una clave derivada de RUNLIGHT_SECRET (o, sin ella, de RUNLIGHT_TOKEN) y nunca se devuelven al navegador, así que deja un campo vacío para mantener su clave guardada. Si no está definida ninguna de las dos variables, las claves se guardan tal como se escriben y Ajustes te lo indica.
También puedes definir el servicio en el código pasando mail, y entonces Ajustes lo muestra sin poder cambiarlo.
ts
runlight({
store,
mail: { service: "resend", apiKey: process.env.RESEND_API_KEY!, from: "reports@example.com", fromName: "Runlight" },
});Enviar a través de tu aplicación
Una aplicación que ya envía correo, como un CMS, puede pasar en su lugar su propio sistema de envío como mail, con una función send que recibe cada mensaje (to, from, fromName, subject, html, text y headers), la dirección y el nombre del remitente, y via, el nombre con el que Ajustes lo muestra. Los informes, los correos de prueba, las invitaciones y los enlaces de inicio de sesión pasan entonces por él, y Ajustes muestra su nombre y su dirección de envío.
El sistema de envío de la aplicación es el predeterminado. El propietario puede elegir otro servicio en Ajustes, que ocupa su lugar, y quitar ese servicio vuelve al sistema de la aplicación. Los plugins de WordPress, Drupal y Craft pasan el suyo cuando el sitio tiene configurado un sistema de envío real.
ts
runlight({
store,
mail: { from: "hello@example.com", fromName: "Example", via: "My app", send: (message) => mailer.send(message) },
});En Go el sistema de envío es una opción propia, AppMailer, con Send, From, FromName y Via, y en Rust es app_mailer. Ruby y Elixir llaman al remitente from_name, y PHP acepta un callable como send.
Pasa mailServices con los ids de los servicios que Ajustes puede ofrecer para dejar fuera los demás, como hace el plugin de WordPress con SMTP. Un servicio guardado antes que no esté en la lista cuenta como ninguno, así que los envíos vuelven al sistema propio de la aplicación.
El webhook
El webhook recibe un POST cuyo cuerpo JSON tiene to, from, fromName, subject, html, text y headers. Con un secreto de firma definido, la cabecera x-runlight-signature contiene sha256= seguido del HMAC-SHA256 del cuerpo sin procesar en hexadecimal. La URL debe usar https (o ser localhost).
2. Añadir quién recibe los informes
En Ajustes, Informes por email, añade una dirección con su frecuencia (semanal o mensual) y el idioma en que debe estar el correo. Enviar un ejemplo envía al momento el último informe, una vez por minuto para cada dirección. Desde un servidor independiente conectado, los ejemplos salen una vez cada diez minutos para todo el sitio.
- Los informes semanales cubren de lunes a domingo y salen el lunes desde las 8 de la mañana.
- Los informes mensuales cubren el mes natural y salen el día 1 desde las 8 de la mañana.
Ambos usan la zona horaria del sitio, y cada periodo se envía una vez. Si el envío falla, la siguiente comprobación lo intenta de nuevo.
3. Programar la comprobación
Los informes los envía la comprobación horaria, así que no sale nada hasta que esté programada.
Darse de baja
Cada correo tiene un enlace para darse de baja y las cabeceras List-Unsubscribe que usan las aplicaciones de correo para su propio botón de baja. El enlace abre una página con un botón, para que un escáner de correo que abra enlaces no pueda dar de baja a nadie por accidente.