Correo
ShareOut funciona sin correo a propósito — el ingreso con contraseña es el camino por defecto y no necesita ningún proveedor de correo. El correo es lo que agregás cuando querés que invitaciones, resúmenes y códigos de un solo uso lleguen a una bandeja en vez de a un log.
Qué queda apagado sin eso
Sección titulada «Qué queda apagado sin eso»| Función | Sin el binding EMAIL |
|---|---|
| Códigos de ingreso de un solo uso | Se escriben en el log del Worker. Sirve para quien opera solo, no para un equipo |
| Invitaciones al espacio de trabajo | No se mandan por correo — usá Copiar enlace y pasá vos la URL (abajo) |
| Resumen semanal, notificaciones | No se entregan |
| Correo de artefactos, entregas de agentes | No se entregan |
| Ingreso con contraseña | No se ve afectado. Por eso una instancia es usable sin nada de correo |
El binding viene comentado en wrangler.toml. Descomentalo:
[[send_email]]name = "EMAIL"Configurá el remitente y redesplegá:
[vars]EMAIL_DEFAULT_FROM = "shareout@tuempresa.com"npm run deployBindings y vars son de tiempo de despliegue — a diferencia de los secretos, no tienen efecto hasta que el redespliegue termina.
Verificá leyendo la configuración de vuelta:
curl -sS "$ORIGIN/v1/admin/instance" -H "Authorization: Bearer $SHAREOUT_TOKEN" | jq '.email'binding: true y un default_from significan que el envío está vivo. Después mandá uno
de verdad: invitate a un espacio y mirá si llega.
Recibir
Sección titulada «Recibir»Los artefactos y los espacios pueden aceptar correo entrante: una bandeja de archivos por espacio, y direcciones por artefacto.
-
Activá Email Routing en tu dominio, en Cloudflare.
-
Ruteá un catch-all a este Worker. El Worker exporta un handler
email(); Cloudflare le entrega ahí. -
Configurá el dominio donde viven esas direcciones:
[vars]EMAIL_INBOX_DOMAIN = "inbox.tuempresa.com"Sin configurar, usa
inbox.<host de tu instancia>.
El subdominio de bandeja está separado del apex a propósito, para que un catch-all nunca
se trague casillas reales como hola@tuempresa.com.
Cuando está vivo, Admin → Configuración muestra la dirección de la bandeja del espacio. Si esa sección no aparece, la instancia no tiene binding de correo — la dirección se oculta en vez de mostrarse como algo que no puede recibir.
Entregabilidad
Sección titulada «Entregabilidad»Mandes lo que mandes, la reputación del dominio remitente es tuya:
- SPF, DKIM y DMARC en el dominio remitente — el panel de Cloudflare te guía
- una dirección
Fromreal y monitoreada, nonoreply@ - ShareOut mantiene una lista de supresión y respeta las bajas por categoría; un rebote o una queja corta los envíos futuros a esa dirección por su cuenta
Invitar gente sin correo
Sección titulada «Invitar gente sin correo»Invitá como siempre — Admin → Miembros, poné la dirección. La invitación se crea salga o no el correo. Después aparece en Invitaciones pendientes con dos botones:
- Copiar enlace — genera la URL de ingreso y la copia. Mandala por donde quieras: Slack, chat, a viva voz. No se manda ningún correo.
- Reenviar — vuelve a mandar el correo. Sin el binding
EMAILno hace nada útil.
El enlace es {origen}/invite/{código}. Es de un solo uso, vence a los 7 días y sirve solo
para la dirección a la que se emitió.
Copiar un enlace nunca invalida uno que mandaste antes — cada vez que apretás se genera un reclamo más, y todos los no usados siguen sirviendo hasta que vencen. Revocar (×) los mata a todos de una.
# Lo mismo por API — notify:false genera un enlace sin mandar correocurl -sS -X POST "$ORIGIN/v1/workspaces/$WORKSPACE_ID/invites/$INVITE_ID/resend" \ -H "Authorization: Bearer $SHAREOUT_TOKEN" -H 'Content-Type: application/json' \ -d '{"notify":false}' | jq -r '.inviteUrl'Correr sin correo a propósito
Sección titulada «Correr sin correo a propósito»Una instancia privada para un equipo chico es una configuración sin correo perfectamente válida:
- la gente entra con correo y contraseña (
/setuppara el primer admin) - las invitaciones funcionan con Copiar enlace, acá arriba — no hace falta proveedor
- los códigos de un solo uso siguen funcionando si podés leer el log del Worker
/v1/admin/instancelista el huecoEMAIL binding, así queda como una decisión visible y no como algo que te olvidaste
