mail.message : champs, relations et API
Le modèle mail.message (« Message ») est un modèle persistant déclaré par le module Discussion, puis enrichi par 12 autres modules. Il expose 76 champs, dont 70 déclarés directement sur le modèle ; 20 champs d'autres modèles pointent vers lui. Retrouvez ci-dessous chaque champ avec son nom technique, son type, son libellé français et ses relations, puis un exemple d'appel à l'API JSON-2 d'Odoo 20.
Fiche d'identité
- Nom technique
mail.message- Libellé
- Message
- Type
- Persistant (models.Model)
- Table SQL
mail_message- Module d'origine
- Discussion (
mail) - Étendu par
- portal, account, sms, im_livechat, rating, portal_rating, project, website_slides, mail_tracking, mail_tracking_mass_mailing, mail_tracking_sms, snailmail
- Tri par défaut (_order)
id desc- Champ d'affichage (_rec_name)
subject- Hérite de (mixins)
- bus.listener.mixin
Champs du modèle
70 champs propres, 0 hérités des mixins et 6 champs automatiques de l'ORM. Cliquez sur un nom pour obtenir le lien direct vers le champ.
76 champs affichés sur 76
| Nom technique | Libellé | Type | Détails |
|---|---|---|---|
| account_audit_log_account_id | Compte | many2one | calculé ajouté par Facturation ( |
| account_audit_log_company_id | Société | many2one | calculé ajouté par Facturation ( |
| account_audit_log_move_id | Pièce comptable | many2one | calculé ajouté par Facturation ( |
| account_audit_log_partner_id | Partenaire | many2one | calculé ajouté par Facturation ( |
| account_audit_log_restricted | Protégé par des journaux d’audit restreints | boolean | calculé ajouté par Facturation ( |
| account_audit_log_tax_id | Taxe | many2one | calculé ajouté par Facturation ( |
| attachment_ids | Pièces jointes | many2many | |
| author_avatar | Avatar de l'auteur | binary | related : |
| author_guest_id | Invité | many2one | |
| author_id | Auteur Auteur du message. S'il n'est pas indiqué, email_from peut contenir une adresse e-mail ne correspondant à aucun partenaire. | many2one | |
| body | Contenus | html | |
| bookmarked_partner_ids | Ajouté aux favoris par | many2many | |
| call_history_ids | Historique des appels | one2many | inverse : |
| channel_id | Chaîne | many2one | calculé |
| chatbot_message_ids | Message du Chatbot | one2many | inverse : ajouté par Live Chat ( |
| child_ids | Messages enfants | one2many | inverse : |
| date | Date | datetime | |
| email_add_signature | Signature d'ajout d'e-mail | boolean | |
| email_from | De Adresse e-mail de l'expéditeur. Ce champ est défini quand aucun partenaire correspondant n'est trouvé et remplace le champ author_id dans le chatter. | char | |
| email_layout_xmlid | Agencement | char | |
| ended_poll_ids | Sondage clôturé | one2many | inverse : |
| has_error | A une erreur | boolean | calculé |
| has_poll | Contient un sondage | boolean | calculé |
| has_sms_error | A une erreur SMS | boolean | calculé ajouté par SMS gateway ( |
| incoming_email_cc | E-mails en Cc | char | |
| incoming_email_to | Envoyer les e-mails à | text | |
| is_bookmarked | Ajouté aux favoris L'utilisateur actuel a ajouté ce message aux favoris | boolean | calculé |
| is_current_user_or_guest_author | Est un utilisateur actuel ou un auteur invité | boolean | calculé |
| is_internal | Employés seulement Masquer pour les utilisateurs publics/portail, indépendamment de la configuration du sous-type. | boolean | |
| letter_ids | Lettre | one2many | inverse : ajouté par Snail Mail ( |
| linked_message_ids | Message lié | many2many | calculé |
| mail_activity_type_id | Envoyer le type d'activité par e-mail | many2one | |
| mail_ids | E-mails | one2many | inverse : |
| mail_server_id | Serveur de messagerie sortant | many2one | |
| message_id | ID du message Identifiant unique de message | char | lecture seule |
| message_link_preview_ids | Aperçu lien message | one2many | inverse : |
| message_type | Type Used to categorize message generator 'email': generated by an incoming email e.g. mailgateway 'comment': generated by user input e.g. through discuss or composer 'email_outgoing': generated by a mailing 'notification': generated by system e.g. tracking messages 'auto_comment': generated by automated notification mechanism e.g. acknowledgment 'user_notification': generated for a specific recipient | selection | requis Valeurs : |
| model | Modèle de document associé | char | |
| needaction | Nécessite une action | boolean | calculé |
| notification_ids | Notifications | one2many | inverse : |
| notified_partner_ids | Partenaire nécessitant une action. | many2many | |
| outgoing_email_to | e-mails à | char | |
| parent_id | Message parent | many2one | |
| partner_cc_ids | Recipients (Cc) | many2many | |
| partner_ids | Recipients (To) | many2many | |
| pinned_at | Épinglé Valeur datetime à laquelle le message a été épinglé | datetime | |
| preview | Aperçu Le début du texte du corps utilisé comme un aperçu de l'e-mail. | char | calculé |
| rating_id | Évaluation | many2one | calculé ajouté par Customer Rating ( |
| rating_ids | Évaluations associées | one2many | inverse : ajouté par Customer Rating ( |
| rating_value | Valeur de l'évaluation | float | calculé ajouté par Customer Rating ( |
| reaction_ids | Réactions | one2many | inverse : |
| record_alias_domain_id | Alias de domaine | many2one | |
| record_company_id | Société | many2one | |
| record_name | Nom de l'enregistrement du message | char | calculé |
| reply_to | Répondre à Adresse e-mail de réponse. Définir le champ reply_to contourne la création automatique de fil. | char | |
| reply_to_force_new | Pas de suivi dans le fil pour les réponses Si vrai, les réponses n'iront pas dans le fil de discussion du document original. À la place, le reply_to dans l'ID de suivi du message sera vérifié et les réponses seront redirigées en fonction. Ceci a un impact sur l'ID du message généré. | boolean | |
| res_access_create | Accès création ressource | boolean | calculé |
| res_access_read | Accès lecture ressource | boolean | calculé |
| res_access_unlink | Accès suppression ressource | boolean | calculé |
| res_access_write | Accès écriture ressource | boolean | calculé |
| res_id | ID du document associé | many2one_reference | |
| snailmail_error | Message d'envoi postal en erreur | boolean | calculé ajouté par Snail Mail ( |
| source_mailing_id | Generated by (mailing) | many2one | ajouté par Mass Mailing Tracking ( |
| source_sms_template_id | Generated by (SMS template) | many2one | ajouté par SMS Message Tracking ( |
| source_template_id | Generated by (template) | many2one | ajouté par Discuss Tracking ( |
| source_view_id | Generated by (qweb view) | many2one | ajouté par Discuss Tracking ( |
| started_poll_ids | Sondage lancé | one2many | inverse : |
| subject | Sujet | char | |
| subtype_id | Sous-type | many2one | |
| tracking_value_ids | Suivi des valeurs Les valeurs suivies sont stockées dans un modèle distinct. Ce champ permet de reconstruire le suivi et de générer des statistiques sur le modèle. | one2many | inverse : ajouté par Discuss Tracking ( |
| create_date | Créé le | datetime | lecture seuleautomatique |
| create_uid | Créé par | many2one | lecture seuleautomatique |
| display_name | Nom affiché | char | lecture seulecalculéautomatique |
| id | ID | integer | lecture seuleautomatique |
| write_date | Dernière mise à jour le | datetime | lecture seuleautomatique |
| write_uid | Dernière mise à jour par | many2one | lecture seuleautomatique |
Relations
Modèles liés depuis ce modèle
- account.account : account_audit_log_account_id
- account.move : account_audit_log_move_id
- account.tax : account_audit_log_tax_id
- chatbot.message : chatbot_message_ids
- discuss.call.history : call_history_ids
- discuss.channel : channel_id
- ir.attachment : attachment_ids
- ir.mail_server : mail_server_id
- ir.ui.view : source_view_id
- mail.activity.type : mail_activity_type_id
- mail.alias.domain : record_alias_domain_id
- mail.guest : author_guest_id
- mail.mail : mail_ids
- mail.message : child_ids, linked_message_ids, parent_id
- mail.message.link.preview : message_link_preview_ids
- mail.message.reaction : reaction_ids
- mail.message.subtype : subtype_id
- mail.notification : notification_ids
- mail.poll : ended_poll_ids, started_poll_ids
- mail.template : source_template_id
- mail.tracking.value : tracking_value_ids
- mailing.mailing : source_mailing_id
- rating.rating : rating_id, rating_ids
- res.company : account_audit_log_company_id, record_company_id
- res.partner : account_audit_log_partner_id, author_id, bookmarked_partner_ids, notified_partner_ids, partner_cc_ids, partner_ids
- sms.template : source_sms_template_id
- snailmail.letter : letter_ids
Champs d'autres modèles qui pointent ici
- chatbot.message : mail_message_id
- discuss.call.history : start_call_message_id
- discuss.channel : from_message_id
- discuss.channel.member : seen_message_id
- mail.compose.message : parent_id
- mail.group.message : mail_message_id
- mail.mail : mail_message_id
- mail.message : linked_message_ids, parent_id
- mail.message.link.preview : message_id
- mail.message.reaction : message_id
- mail.message.schedule : mail_message_id
- mail.message.translation : message_id
- mail.notification : mail_message_id
- mail.poll : end_message_id, start_message_id
- mail.tracking.value : mail_message_id
- rating.rating : message_id
- sms.sms : mail_message_id
- snailmail.letter : message_id
Lire ce modèle par l'API
Exemple d'appel à l'API JSON-2 d'Odoo 20 : lecture des cinq premiers enregistrements avec des champs réels du modèle. Remplacez l'instance, la base et la clé API par les vôtres.
curl -X POST "https://votre-instance.odoo.com/json/2/mail.message/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: votre-base" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["subject","message_type","author_guest_id","author_id","mail_activity_type_id"],"limit":5}'import requests
BASE_URL = "https://votre-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "votre-base"}
res = requests.post(
f"{BASE_URL}/mail.message/search_read",
headers=headers,
json={"domain": [], "fields": ["subject","message_type","author_guest_id","author_id","mail_activity_type_id"], "limit": 5},
)
res.raise_for_status()
print(res.json())- L'accès à l'API externe est réservé à la formule Custom d'Odoo.
- XML-RPC et JSON-RPC seront retirés dans Odoo 22 (automne 2028) : préférez JSON-2.
- Les droits d'accès et règles d'enregistrement de l'utilisateur de la clé s'appliquent.
Citer cet outil
Vous rédigez un tutoriel, une documentation interne ou une réponse sur un forum ? Copiez ce lien pour renvoyer vos lecteurs vers la fiche à jour.
<a href="https://aidoo.ai/fr/outils/explorateur-modeles-odoo/mail-message">mail.message (Odoo 20.0)</a>Sources
- Code source du modèle sur GitHub
- Documentation Odoo 20 : ORM API
- Documentation Odoo 20 : API externe JSON-2
Données vérifiées le 25 septembre 2026 · Odoo 20.0 Community
Vous avez un projet Odoo ou souhaitez exploiter votre ERP avec l'IA ? Échangeons
Intégration, développement de modules, connexion de Claude ou ChatGPT à vos données : décrivez-nous votre contexte, nous vous répondons sous 24 heures ouvrées.