Odoo 20.0 Community · Persistant

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 techniqueLibelléTypeDétails
account_audit_log_account_idComptemany2one
calculé

ajouté par Facturation (account)

account_audit_log_company_idSociété many2one
calculé

ajouté par Facturation (account)

account_audit_log_move_idPièce comptablemany2one
calculé

ajouté par Facturation (account)

account_audit_log_partner_idPartenairemany2one
calculé

ajouté par Facturation (account)

account_audit_log_restrictedProtégé par des journaux d’audit restreintsboolean
calculé

ajouté par Facturation (account)

account_audit_log_tax_idTaxemany2one
calculé

ajouté par Facturation (account)

attachment_idsPièces jointesmany2many
author_avatarAvatar de l'auteurbinary

related : author_id.avatar_128

author_guest_idInvitémany2one
author_idAuteur

Auteur du message. S'il n'est pas indiqué, email_from peut contenir une adresse e-mail ne correspondant à aucun partenaire.

many2one
bodyContenushtml
bookmarked_partner_idsAjouté aux favoris parmany2many
call_history_idsHistorique des appelsone2many

inverse : start_call_message_id

channel_idChaînemany2one
calculé
chatbot_message_idsMessage du Chatbotone2many

inverse : mail_message_id

ajouté par Live Chat (im_livechat)

child_idsMessages enfantsone2many

inverse : parent_id

dateDatedatetime
email_add_signatureSignature d'ajout d'e-mailboolean
email_fromDe

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_xmlidAgencementchar
ended_poll_idsSondage clôturéone2many

inverse : end_message_id

has_errorA une erreurboolean
calculé
has_pollContient un sondageboolean
calculé
has_sms_errorA une erreur SMSboolean
calculé

ajouté par SMS gateway (sms)

incoming_email_ccE-mails en Ccchar
incoming_email_toEnvoyer les e-mails àtext
is_bookmarkedAjouté aux favoris

L'utilisateur actuel a ajouté ce message aux favoris

boolean
calculé
is_current_user_or_guest_authorEst un utilisateur actuel ou un auteur invitéboolean
calculé
is_internalEmployés seulement

Masquer pour les utilisateurs publics/portail, indépendamment de la configuration du sous-type.

boolean
letter_idsLettreone2many

inverse : message_id

ajouté par Snail Mail (snailmail)

linked_message_idsMessage liémany2many
calculé
mail_activity_type_idEnvoyer le type d'activité par e-mailmany2one
mail_idsE-mailsone2many

inverse : mail_message_id

mail_server_idServeur de messagerie sortantmany2one
message_idID du message

Identifiant unique de message

char
lecture seule
message_typeType

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 : email (E-mail entrant), comment (Commentaire), email_outgoing (E-mail sortant), notification (Notification système), auto_comment (Notification ciblée automatisée), out_of_office (Message d'absence du bureau), user_notification (Notification spécifique à l'utilisateur), tracking (Suivi)

modelModèle de document associéchar
needactionNécessite une actionboolean
calculé
notification_idsNotificationsone2many

inverse : mail_message_id

notified_partner_idsPartenaire nécessitant une action.many2many
outgoing_email_toe-mails àchar
parent_idMessage parentmany2one
partner_cc_idsRecipients (Cc)many2many
partner_idsRecipients (To)many2many
pinned_atÉpinglé

Valeur datetime à laquelle le message a été épinglé

datetime
previewAperçu

Le début du texte du corps utilisé comme un aperçu de l'e-mail.

char
calculé
rating_idÉvaluationmany2one
calculé

ajouté par Customer Rating (rating)

rating_idsÉvaluations associéesone2many

inverse : message_id

ajouté par Customer Rating (rating)

rating_valueValeur de l'évaluationfloat
calculé

ajouté par Customer Rating (rating)

reaction_idsRéactionsone2many

inverse : message_id

record_alias_domain_idAlias de domainemany2one
record_company_idSociétémany2one
record_nameNom de l'enregistrement du messagechar
calculé
reply_toRépondre à

Adresse e-mail de réponse. Définir le champ reply_to contourne la création automatique de fil.

char
reply_to_force_newPas 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_createAccès création ressourceboolean
calculé
res_access_readAccès lecture ressourceboolean
calculé
res_access_writeAccès écriture ressourceboolean
calculé
res_idID du document associémany2one_reference
snailmail_errorMessage d'envoi postal en erreurboolean
calculé

ajouté par Snail Mail (snailmail)

source_mailing_idGenerated by (mailing)many2one

ajouté par Mass Mailing Tracking (mail_tracking_mass_mailing)

source_sms_template_idGenerated by (SMS template)many2one

ajouté par SMS Message Tracking (mail_tracking_sms)

source_template_idGenerated by (template)many2one

ajouté par Discuss Tracking (mail_tracking)

source_view_idGenerated by (qweb view)many2one

ajouté par Discuss Tracking (mail_tracking)

started_poll_idsSondage lancéone2many

inverse : start_message_id

subjectSujetchar
subtype_idSous-typemany2one
tracking_value_idsSuivi 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 : mail_message_id

ajouté par Discuss Tracking (mail_tracking)

create_dateCréé ledatetime
lecture seuleautomatique
create_uidCréé parmany2one
lecture seuleautomatique
display_nameNom affichéchar
lecture seulecalculéautomatique
idIDinteger
lecture seuleautomatique
write_dateDernière mise à jour ledatetime
lecture seuleautomatique
write_uidDernière mise à jour parmany2one
lecture seuleautomatique

Relations

Modèles liés depuis ce modèle

Champs d'autres modèles qui pointent ici

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
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}'
Python (requests)
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

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.