Define el comportamiento visible para el usuario de los correos electrónicos transaccionales y opcionales, incluyendo la precedencia de preferencias, enlaces seguros, agrupación, accesibilidad, localización, privacidad y un historial veraz de entrega dentro del producto.
Estado del paquete: contexto de referencia listo para revisión humana. El contrato y los escenarios de prueba están completos, pero no se afirma que una implementación adoptante los haya superado.
Decisión
Clasificar cada correo electrónico por propósito antes de aplicar las preferencias. Los mensajes de servicio esenciales usan el contenido más restringido necesario; los mensajes opcionales requieren la política de aceptación aplicable. El estado dentro del producto sigue siendo la autoridad cuando la entrega por correo electrónico se retrasa o falla.
Alcance
- Clases de propósito, destinatarios, reglas de preferencia, anatomía del contenido, localización, enlaces, agrupación, estado de entrega, cancelación de suscripción y comportamiento de soporte.
- Correos electrónicos visibles para el usuario disparados por eventos del producto.
- Coordinación entre el estado del producto y el historial de comunicación.
Fuera de este bloque
- Mecánicas de reintento del proveedor, detalles internos de renderizado de plantillas o clasificación legal para cada jurisdicción.
- Usar el correo electrónico como el único registro duradero de una acción.
Contrato
- Cada notificación declara propósito, audiencia, urgencia, categoría de preferencia, clasificación de datos y evento fuente.
- La resolución del destinatario ocurre al momento de envío desde un canal de cuenta autorizado; no se confían direcciones arbitrarias del payload del evento.
- El asunto y el preencabezado identifican el servicio y la acción sin exponer datos sensibles innecesarios.
- El mensaje explica qué ocurrió, quién o qué lo inició cuando es apropiado, cuándo ocurrió y la siguiente acción segura.
- Los enlaces usan un origen aprobado, minimizan credenciales portadoras y pasan por una página de confirmación para acciones con consecuencias.
- El producto expone el estado de entrega separado de la acción comercial subyacente y no promete la llegada a la bandeja de entrada.
Guía de implementación
- Usar texto multipart y HTML con encabezados semánticos, texto de enlace significativo, contraste suficiente y texto alternativo útil.
- Localizar según la preferencia del destinatario capturada en el momento del evento o del envío según la semántica documentada del producto.
- Establecer identificadores estables de mensaje y correlación para agrupación y soporte.
- Proporcionar una ruta de preferencia para categorías opcionales y una ruta de reporte de seguridad para mensajes inesperados.
Manejo de fallos y salvaguardas
- Si la resolución del destinatario es ambigua o el estado del canal no está verificado, suprimir la entrega sensible y mostrar un fallo interno.
- Si la entrega falla, preservar la acción del producto y ofrecer una ruta de recuperación dentro del producto cuando sea necesario.
- Si cambia la propiedad de la cuenta, no enviar contenido en cola a una dirección recién asignada sin reautorización.
Verificación y operaciones
- Medir resultados solicitados, suprimidos por preferencia, renderizados, aceptados, rebotados, con quejas, retrasados y con acción completada por propósito.
- Auditar contenido para campos sensibles y enlaces expirados usando fixtures.
- Revisar mensajes de alto volumen o con muchas quejas con los responsables del producto y privacidad.
Los ejemplos con apariencia ejecutable en este paquete son fixtures y contratos de aceptación. Ejecute
python tools/validate.py desde la raíz de la colección para verificar la estructura y metadatos del paquete; luego
implemente y ejecute los escenarios en el repositorio objetivo.
Suposiciones de adopción
- Los nombres y valores numéricos en
example.yamlson un perfil de adopción, no valores predeterminados universales. - El equipo adoptante debe mapear actores, clases de datos, vocabulario de errores y propiedad a su sistema.
Referencias
- No se requiere fuente normativa externa; este paquete define una decisión del proyecto.