OdooWiki OCA HUB

Email tracking

mail_tracking folder_open OCA/mail open_in_new
Social Network Licencia: AGPL-3

Este módulo muestra el estado de seguimiento de las notificaciones por correo electrónico para cualquier mensaje en el hilo de correo (chatter). Cada contacto notificado tendrá un icono intuitivo justo a la derecha de su nombre.

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 19.0

Añade seguimiento de correo electrónico a Odoo: cada correo saliente obtiene un registro de seguimiento, y el chatter muestra el estado por destinatario (enviado, entregado, abierto, rebotado, error). Los usuarios también pueden ver los mensajes fallidos y la puntuación de reputación de correo electrónico de un contacto.

Este módulo convierte los correos salientes de Odoo en mensajes rastreados. Cada vez que se prepara un correo para su envío, se crea un registro de seguimiento para cada destinatario y se añade una pequeña imagen invisible al cuerpo del correo. Cuando el destinatario abre el correo, esa imagen se carga y el estado cambia a "Opened".

En el chatter de cualquier registro, cada contacto notificado muestra ahora un icono de estado junto a su nombre: Waiting, Sent, Delivered, Opened, Error o Unknown. Al pasar el ratón o hacer clic se muestra el motivo del error cuando algo ha fallado.

Un nuevo filtro "Failed sent messages" aparece en las vistas de búsqueda de todos los modelos que usan el chatter, y un panel de mensajes fallidos permite a los usuarios revisar los mensajes que rebotaron, fueron rechazados o marcados como spam, y luego marcarlos como gestionados.

Dos nuevos menús en la sección Email listan todos los correos de seguimiento y los eventos de seguimiento, con sus propias vistas de lista, formulario y búsqueda. Los eventos de seguimiento registran aperturas, clics (con la URL clicada, la dirección IP, el navegador y el país), entregas, rebotes, quejas de spam y bajas.

En los contactos, una nueva pestaña muestra los correos de seguimiento de ese contacto y una puntuación de correo entre 0 y 100, calculada a partir de los resultados de entregas anteriores. Los contactos se pueden filtrar por estado de rebote, y el correo de un contacto se marca automáticamente como rebotado cuando se recibe un rebote duro, una queja de spam o un rechazo.

Los ajustes permiten a los administradores mostrar u ocultar los alias en el seguimiento, y eliminar automáticamente los registros de seguimiento antiguos tras un número configurable de días.

Depende de

mail

Menús que añade

Tracking emailsTracking events
Modelos y campos (12)
  • mail.mail · amplía un modelo existente
  • mail.alias · amplía un modelo existente
  • mail.thread · amplía un modelo existentefailed_message_ids (Failed Messages)
  • res.company · amplía un modelo existentemail_tracking_show_aliases (Show Aliases in Mail Tracking)
  • res.partner · modelo nuevoemail_score, tracking_emails_count
  • mail.message · amplía un modelo existenteemail_cc (Cc), email_to (To), is_failed_message, mail_tracking_ids (Mail Trackings), mail_tracking_needs_action
  • ir.mail_server · amplía un modelo existente
  • mail.alias.domain · amplía un modelo existente
  • mail.bounced.mixin · modelo nuevoemail_bounced
  • mail.tracking.email · modelo nuevodate, name (Subject), time, state, token (Security Token), sender (Sender email), mail_id (Email), recipient (Recipient email), timestamp (UTC timestamp), error_type, message_id, partner_id, bounce_type, display_name, mail_message_id, error_description, error_smtp_server (Error SMTP server), recipient_address (Recipient email address), bounce_description, tracking_event_ids (Tracking events)
  • mail.tracking.event · modelo nuevoip (User IP), url (Clicked URL), date, time, mobile (Is mobile?), ua_type (User agent type), os_family (Operating system family), recipient, timestamp (UTC timestamp), ua_family (User agent family), error_type, event_type, user_agent, smtp_server (SMTP server), error_details, user_country_id (User country), error_description, recipient_address (Recipient email address), tracking_email_id (Message)
  • res.config.settings · amplía un modelo existentemail_tracking_show_aliases, mail_tracking_email_max_age_days (Max age in days of mail tracking email records)

Texto generado por IA (DeepSeek) al leer el código de la versión 19.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. El módulo es muy grande y solo se ha leído una parte del código. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 8 confirmadas, 1 sin información de 9 versiones.

terminal Instalación y uso

Documentación de OCA · Odoo 19.0

Si utilizas una instalación con múltiples bases de datos (con o sin la opción dbfilter) en la que /web/databse/selector devuelve una lista de más de una base de datos, entonces debes añadir el addon mail_tracking a la lista de addons de carga amplia (por defecto, solo el addon web), estableciendo la opción --load. Por ejemplo, --load=web,mail,mail_tracking

La primera actualización del módulo después de añadir este índice crea un índice parcial sobre mail_message (mail_message_mail_tracking_needs_action_index). Las actualizaciones posteriores no lo vuelven a construir: Odoo lo conserva mientras su definición no cambie.

En una base de datos con una tabla mail_message muy grande, esa primera construcción bloquea las escrituras en la tabla mientras se ejecuta (13 minutos en 122 millones de filas). Para evitar el bloqueo, crea el índice de antemano exactamente como lo haría el ORM, con el comentario que almacena sobre él; Odoo compara ese comentario con la definición del índice y conserva el índice cuando coinciden:

CREATE INDEX CONCURRENTLY mail_message_mail_tracking_needs_action_index
    ON mail_message (id) WHERE mail_tracking_needs_action IS TRUE;
COMMENT ON INDEX mail_message_mail_tracking_needs_action_index
    IS 'INDEX (id) WHERE mail_tracking_needs_action IS TRUE';

Como puede haber escenarios en los que no se desee enviar una img de seguimiento en el cuerpo del correo electrónico, existe un parámetro global del sistema "mail_tracking.tracking_img_disabled" que se puede establecer en True para eliminar la img de seguimiento de todos los correos electrónicos salientes. Tenga en cuenta que el estado Opened no estará disponible en este caso.

Cuando el usuario envía un mensaje en mail_thread (chatter), por ejemplo en el formulario de partner, se crea un seguimiento de email para cada notificación por email. Entonces aparecerá un icono de estado justo a la derecha del nombre del partner notificado.

Estos son todos los iconos de estado disponibles:

Unknown: No hay información de seguimiento de email disponible. Puede que este partner notificado tenga 'Receive Inbox Notifications by Email' == 'Never'

Waiting: Esperando a ser enviado

Error: Error al enviar

Sent: Enviado al servidor SMTP configurado

Delivered: Entregado al servidor MX final

Opened: Abierto por el partner

Cc: Es un destinatario en copia carbón. No se puede conocer el estado, por lo que es 'Unknown'

No Email: El partner no tiene un email definido

No Partner: El destinatario no tiene un partner definido

Si quieres ver todos los emails de seguimiento y eventos puedes ir a

  • Settings \> Technical \> Email \> Tracking emails
  • Settings \> Technical \> Email \> Tracking events

Cuando el mensaje genera un estado 'error', aparecerá en el canal 'Failed' de discuss. Cualquier vista con chatter también puede mostrar los mensajes fallidos.

  • Discuss
  • Chatter

Puedes usar el filtro "Failed sent messages" presente en todas las vistas para mostrar registros con mensajes en estado fallido y que necesitan una acción del usuario.

  • Filter

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.