Mail Gateway

mail_gateway
REPOSITORY
REPOSITORYOCA/social
GIT
GIThttps://github.com/OCA/social.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/social/tree/18.0/mail_gateway
VERSION
VERSION 1.0.9
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca, Dixmit
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca, Dixmit
COMMITTERS
COMMITTERSCarlos Lopez, Weblate, OCA-git-bot, oca-ci, Carlos Roca, CarlosRoca13, Luis Rodriguez, eduezerouali-tecnativa, Maksim Shurupov
WEBSITE
WEBSITEhttps://github.com/OCA/social
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module will allow you to integrate an external chat system in your
Odoo system. It requires extra modules with the specific configuration
of each chat system, like mail_gateway_telegram or
mail_gateway_whatsapp.

This way, a group of users can respond customers or any other set of
partners within Odoo, but the messages will be sent through the external
chat system.

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
mail_compose_gateway_message_form_view mail.compose.gateway.message label Inherits mail.email_compose_message_wizard_form
mail_gateway_form_view mail.gateway.form mail.gateway form New
mail_gateway_search_view mail.gateway.search mail.gateway search New
mail_gateway_tree_view mail.gateway.tree mail.gateway list New
mail_guest_manage_form_view mail.guest.manage form New
mail_guest_view_form mail.guest group Inherits mail.mail_guest_view_form
mail_message_gateway_link_form_view mail.message.gateway.link form New
mail_message_gateway_send_form_view mail.message.gateway.send form New
mail_notification_view_tree view.mail.notification.tree mail.notification xpath Inherits mail.mail_notification_view_tree
mail_resend_message_view_form view.mail.resend.message.form mail.resend.message xpath Inherits mail.mail_resend_message_view_form
res_users_settings_view_form res.users.settings field Inherits mail.res_users_settings_view_form
view_res_partner_gateway_channel_form Partner Gateway Channel Form res.partner.gateway.channel form New
view_res_partner_gateway_channel_search Partner Gateway Channel Tree res.partner.gateway.channel search New
view_res_partner_gateway_channel_tree Partner Gateway Channel Tree res.partner.gateway.channel list New
Models touched (17)

New fields (7)
  • anonymous_name Char
  • channel_type Selection
    ondelete={'gateway': 'set default'} selection_add=[('gateway', 'Gateway')]
  • company_id Many2one → res.company
    default=False args: 'res.company'
  • gateway_channel_token Char
  • gateway_id Many2one → mail.gateway
    args: 'mail.gateway'
  • gateway_message_ids One2many → mail.notification
    inverse_name='gateway_channel_id' args: 'mail.notification'
  • gateway_token Char
    related='gateway_id.token' required=False string='Gateway related Token'
Public methods (1)
  • message_post(self, *, message_type='notification', gateway_type=False, **kwargs)
    @api.returns('mail.message', <expr>)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (7)
  • attachment_ids Many2many → ir.attachment
    args: 'ir.attachment', 'mail_compose_gateway_message_ir_attachments_rel', 'wizard_id', 'attachment_id', 'Attachments'
  • object_attachment_ids Many2many → ir.attachment
    column1='wizard_id' column2='attachment_id' comodel_name='ir.attachment' relation='mail_compose_gateway_message_ir_attachments_object_rel' string='Object Attachments'
  • partner_bcc_ids Many2many → res.partner
    column1='wizard_id' column2='partner_id' comodel_name='res.partner' relation='mail_compose_gateway_message_res_partner_bcc_rel' string='Bcc'
  • partner_cc_ids Many2many → res.partner
    column1='wizard_id' column2='partner_id' comodel_name='res.partner' relation='mail_compose_gateway_message_res_partner_cc_rel' string='Cc'
  • partner_ids Many2many → res.partner
    domain=<expr> args: 'res.partner', 'mail_compose_gateway_message_res_partner_rel', 'wizard_id', 'partner_id', 'Additional Contacts'
  • wizard_channel_ids Many2many → res.partner.gateway.channel
    args: 'res.partner.gateway.channel', 'mail_compose_gateway_message_gateway_channel_rel', 'wizard_id', 'channel_id'
  • wizard_partner_ids Many2many → res.partner
    args: 'res.partner', 'mail_compose_gateway_message_res_partner_rel', 'wizard_id', 'partner_id'
Public methods (0)

No public methods.

New fields (12)
  • can_set_webhook Boolean
    compute='_compute_webhook_checks'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company'
  • gateway_type Selection
    required=True args: []
  • has_new_channel_security Boolean
    help='When checked, channels are not created automatically. Usable on Telegram'
  • integrated_webhook_state Selection
    readonly=True args: [('pending', 'Pending'), ('integrated', 'Integrated')]
  • member_ids Many2many → res.users
    args: 'res.users'
  • name Char
    required=True
  • token Char
    help='Key used for integration purposes' required=True
  • webhook_key Char
    help='Key used on the connection URL'
  • webhook_secret Char
    help='Key used to ensure that the connection is secure and\n comes from the desired source'
  • webhook_url Char
    compute='_compute_webhook_url'
  • webhook_user_id Many2one → res.users
    default=<expr> help='User that will create the messages' args: 'res.users'
Public methods (6)
  • create(self, mvals)
    @api.model_create_multi
  • gateway_info(self)
  • remove_webhook(self)
  • set_webhook(self)
  • update_webhook(self)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • gateway_id Many2one → mail.gateway
    args: 'mail.gateway'
  • gateway_token Char
Public methods (0)

No public methods.

New fields (2)
  • guest_id Many2one → mail.guest
    required=True args: 'mail.guest'
  • partner_id Many2one → res.partner
    args: 'res.partner'
Public methods (2)
  • create_partner(self)
  • merge_partner(self)

New fields (7)
  • gateway_channel_data Json
    compute='_compute_gateway_channel_ids'
  • gateway_channel_ids Many2many → res.partner.gateway.channel
    compute='_compute_gateway_channel_ids' args: 'res.partner.gateway.channel'
  • gateway_message_id Many2one → mail.message
    string='Original gateway message' args: 'mail.message'
  • gateway_message_ids One2many → mail.message
    inverse_name='gateway_message_id' string='Child gateway messages' args: 'mail.message'
  • gateway_notification_ids One2many → mail.notification
    domain=[('notification_type', '=', 'gateway')] inverse_name='mail_message_id' args: 'mail.notification'
  • gateway_thread_data Json
    compute='_compute_gateway_thread_data'
  • gateway_type Selection
    selection=<expr>
Public methods (0)

No public methods.

New fields (2)
  • message_id Many2one → mail.message
    args: 'mail.message'
  • resource_ref Reference
    selection='_selection_target_model' string='Record reference'
Public methods (1)
  • link_message(self)

New fields (3)
  • gateway_channel_id Many2one → res.partner.gateway.channel
    required=True args: 'res.partner.gateway.channel'
  • message_id Many2one → mail.message
    required=True args: 'mail.message'
  • partner_id Many2one → res.partner
    required=True args: 'res.partner'
Public methods (1)
  • send(self)

New fields (5)
  • gateway_channel_id Many2one → discuss.channel
    args: 'discuss.channel'
  • gateway_failure_reason Text
    help='Failure reason. This is usually the exception thrown by the email server, stored to ease the debugging of mailing issues.' readonly=True
  • gateway_message_id Char
    readonly=True
  • gateway_type Selection
    selection=<expr>
  • notification_type Selection
    ondelete={'gateway': 'cascade'} selection_add=[('gateway', 'Gateway')]
Public methods (1)
  • send_gateway(self, auto_commit=False, raise_exception=False, parse_mode='HTML')

New fields (1)
  • gateway_notification_ids Many2many → mail.notification
    readonly=True relation='mail_resend_message_gateway_notification_rel' string='Gateway Notifications' args: 'mail.notification'
Public methods (1)
  • default_get(self, fields)
    @api.model

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • gateway_channel_ids One2many → res.partner.gateway.channel
    inverse_name='partner_id' args: 'res.partner.gateway.channel'
Public methods (0)

No public methods.

New fields (5)
  • company_id Many2one → res.company
    related='gateway_id.company_id' store=True args: 'res.company'
  • gateway_id Many2one → mail.gateway
    ondelete='cascade' readonly=True required=True args: 'mail.gateway'
  • gateway_token Char
    readonly=True
  • name Char
    related='gateway_id.name'
  • partner_id Many2one → res.partner
    ondelete='cascade' readonly=True required=True args: 'res.partner'
Public methods (1)
  • mail_format(self)

New fields (1)
  • gateway_ids Many2many → mail.gateway
    args: 'mail.gateway'
Public methods (0)

No public methods.

New fields (1)
  • is_discuss_sidebar_category_gateway_open Boolean
    default=True help='The gateway category in the sidebar will be open' string='Gateway Category Open'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/social
GIT
GIThttps://github.com/OCA/social.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/social/tree/17.0/mail_gateway
VERSION
VERSION 1.0.10
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca, Dixmit
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca, Dixmit
COMMITTERS
COMMITTERSPedro M. Baeza, Carlos Lopez, Weblate, OCA-git-bot, David, oca-ci, Carlos Roca, CarlosRoca13, Luis Rodriguez, eduezerouali-tecnativa, Maksim Shurupov
WEBSITE
WEBSITEhttps://github.com/OCA/social
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module will allow you to integrate an external chat system in your
Odoo system. It requires extra modules with the specific configuration
of each chat system, like mail_gateway_telegram or
mail_gateway_whatsapp.

This way, a group of users can respond customers or any other set of
partners within Odoo, but the messages will be sent through the external
chat system.

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
mail_compose_gateway_message_form_view mail.compose.gateway.message label Inherits mail.email_compose_message_wizard_form
mail_gateway_form_view mail.gateway.form mail.gateway form New
mail_gateway_search_view mail.gateway.search mail.gateway search New
mail_gateway_tree_view mail.gateway.tree mail.gateway tree New
mail_guest_manage_form_view mail.guest.manage form New
mail_guest_view_form mail.guest group Inherits mail.mail_guest_view_form
mail_message_gateway_link_form_view mail.message.gateway.link form New
mail_message_gateway_send_form_view mail.message.gateway.send form New
mail_notification_view_tree view.mail.notification.tree mail.notification xpath Inherits mail.mail_notification_view_tree
mail_resend_message_view_form view.mail.resend.message.form mail.resend.message xpath Inherits mail.mail_resend_message_view_form
view_res_partner_gateway_channel_form Partner Gateway Channel Form res.partner.gateway.channel form New
view_res_partner_gateway_channel_search Partner Gateway Channel Tree res.partner.gateway.channel search New
view_res_partner_gateway_channel_tree Partner Gateway Channel Tree res.partner.gateway.channel tree New
Models touched (17)

New fields (7)
  • anonymous_name Char
  • channel_type Selection
    ondelete={'gateway': 'set default'} selection_add=[('gateway', 'Gateway')]
  • company_id Many2one → res.company
    default=False args: 'res.company'
  • gateway_channel_token Char
  • gateway_id Many2one → mail.gateway
    args: 'mail.gateway'
  • gateway_message_ids One2many → mail.notification
    inverse_name='gateway_channel_id' args: 'mail.notification'
  • gateway_token Char
    related='gateway_id.token' required=False string='Gateway related Token'
Public methods (1)
  • message_post(self, *args, gateway_type=False, **kwargs)
    @api.returns('mail.message', <expr>)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (7)
  • attachment_ids Many2many → ir.attachment
    args: 'ir.attachment', 'mail_compose_gateway_message_ir_attachments_rel', 'wizard_id', 'attachment_id', 'Attachments'
  • object_attachment_ids Many2many → ir.attachment
    column1='wizard_id' column2='attachment_id' comodel_name='ir.attachment' relation='mail_compose_gateway_message_ir_attachments_object_rel' string='Object Attachments'
  • partner_bcc_ids Many2many → res.partner
    column1='wizard_id' column2='partner_id' comodel_name='res.partner' relation='mail_compose_gateway_message_res_partner_bcc_rel' string='Bcc'
  • partner_cc_ids Many2many → res.partner
    column1='wizard_id' column2='partner_id' comodel_name='res.partner' relation='mail_compose_gateway_message_res_partner_cc_rel' string='Cc'
  • partner_ids Many2many → res.partner
    domain=<expr> args: 'res.partner', 'mail_compose_gateway_message_res_partner_rel', 'wizard_id', 'partner_id', 'Additional Contacts'
  • wizard_channel_ids Many2many → res.partner.gateway.channel
    args: 'res.partner.gateway.channel', 'mail_compose_gateway_message_gateway_channel_rel', 'wizard_id', 'channel_id'
  • wizard_partner_ids Many2many → res.partner
    args: 'res.partner', 'mail_compose_gateway_message_res_partner_rel', 'wizard_id', 'partner_id'
Public methods (0)

No public methods.

New fields (12)
  • can_set_webhook Boolean
    compute='_compute_webhook_checks'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company'
  • gateway_type Selection
    required=True args: []
  • has_new_channel_security Boolean
    help='When checked, channels are not created automatically. Usable on Telegram'
  • integrated_webhook_state Selection
    readonly=True args: [('pending', 'Pending'), ('integrated', 'Integrated')]
  • member_ids Many2many → res.users
    args: 'res.users'
  • name Char
    required=True
  • token Char
    help='Key used for integration purposes' required=True
  • webhook_key Char
    help='Key used on the connection URL'
  • webhook_secret Char
    help='Key used to ensure that the connection is secure and\n comes from the desired source'
  • webhook_url Char
    compute='_compute_webhook_url'
  • webhook_user_id Many2one → res.users
    default=<expr> help='User that will create the messages' args: 'res.users'
Public methods (6)
  • create(self, mvals)
    @api.model_create_multi
  • gateway_info(self)
  • remove_webhook(self)
  • set_webhook(self)
  • update_webhook(self)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • gateway_id Many2one → mail.gateway
    args: 'mail.gateway'
  • gateway_token Char
Public methods (0)

No public methods.

New fields (2)
  • guest_id Many2one → mail.guest
    required=True args: 'mail.guest'
  • partner_id Many2one → res.partner
    args: 'res.partner'
Public methods (2)
  • create_partner(self)
  • merge_partner(self)

New fields (7)
  • gateway_channel_data Json
    compute='_compute_gateway_channel_ids'
  • gateway_channel_ids Many2many → res.partner.gateway.channel
    compute='_compute_gateway_channel_ids' args: 'res.partner.gateway.channel'
  • gateway_message_id Many2one → mail.message
    string='Original gateway message' args: 'mail.message'
  • gateway_message_ids One2many → mail.message
    inverse_name='gateway_message_id' string='Child gateway messages' args: 'mail.message'
  • gateway_notification_ids One2many → mail.notification
    domain=[('notification_type', '=', 'gateway')] inverse_name='mail_message_id' args: 'mail.notification'
  • gateway_thread_data Json
    compute='_compute_gateway_thread_data'
  • gateway_type Selection
    selection=<expr>
Public methods (0)

No public methods.

New fields (2)
  • message_id Many2one → mail.message
    args: 'mail.message'
  • resource_ref Reference
    selection='_selection_target_model' string='Record reference'
Public methods (1)
  • link_message(self)

New fields (3)
  • gateway_channel_id Many2one → res.partner.gateway.channel
    required=True args: 'res.partner.gateway.channel'
  • message_id Many2one → mail.message
    required=True args: 'mail.message'
  • partner_id Many2one → res.partner
    required=True args: 'res.partner'
Public methods (1)
  • send(self)

New fields (5)
  • gateway_channel_id Many2one → discuss.channel
    args: 'discuss.channel'
  • gateway_failure_reason Text
    help='Failure reason. This is usually the exception thrown by the email server, stored to ease the debugging of mailing issues.' readonly=True
  • gateway_message_id Char
    readonly=True
  • gateway_type Selection
    selection=<expr>
  • notification_type Selection
    ondelete={'gateway': 'cascade'} selection_add=[('gateway', 'Gateway')]
Public methods (1)
  • send_gateway(self, auto_commit=False, raise_exception=False, parse_mode='HTML')

New fields (1)
  • gateway_notification_ids Many2many → mail.notification
    readonly=True relation='mail_resend_message_gateway_notification_rel' string='Gateway Notifications' args: 'mail.notification'
Public methods (1)
  • default_get(self, fields)
    @api.model

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • gateway_channel_ids One2many → res.partner.gateway.channel
    inverse_name='partner_id' args: 'res.partner.gateway.channel'
Public methods (1)
  • mail_partner_format(self, fields=None)
    Override to add gateway info.

New fields (5)
  • company_id Many2one → res.company
    related='gateway_id.company_id' store=True args: 'res.company'
  • gateway_id Many2one → mail.gateway
    ondelete='cascade' readonly=True required=True args: 'mail.gateway'
  • gateway_token Char
    readonly=True
  • name Char
    related='gateway_id.name'
  • partner_id Many2one → res.partner
    ondelete='cascade' readonly=True required=True args: 'res.partner'
Public methods (1)
  • mail_format(self)

New fields (1)
  • gateway_ids Many2many → mail.gateway
    args: 'mail.gateway'
Public methods (0)

No public methods.

New fields (1)
  • is_discuss_sidebar_category_gateway_open Boolean
    default=True help='The gateway category in the sidebar will be open' string='Gateway Category Open'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/social
GIT
GIThttps://github.com/OCA/social.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/social/tree/16.0/mail_gateway
VERSION
VERSION 1.3.4
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca, Dixmit
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca, Dixmit
COMMITTERS
COMMITTERSPedro M. Baeza, Enric Tobella, Carlos Lopez, Weblate, OCA-git-bot, David, oca-ci, Marcel Savegnago, Luis Rodriguez, AlexPForgeFlow
WEBSITE
WEBSITEhttps://github.com/OCA/social
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
mail_compose_gateway_message_form_view mail.compose.gateway.message label Inherits mail.email_compose_message_wizard_form
mail_gateway_form_view mail.gateway.form mail.gateway form New
mail_gateway_search_view mail.gateway.search mail.gateway search New
mail_gateway_tree_view mail.gateway.tree mail.gateway tree New
mail_guest_manage_form_view mail.guest.manage form New
mail_message_gateway_link_form_view mail.message.gateway.link form New
mail_message_gateway_send_form_view mail.message.gateway.send form New
view_res_partner_gateway_channel_form Partner Gateway Channel Form res.partner.gateway.channel form New
view_res_partner_gateway_channel_search Partner Gateway Channel Tree res.partner.gateway.channel search New
view_res_partner_gateway_channel_tree Partner Gateway Channel Tree res.partner.gateway.channel tree New
Models touched (15)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (7)
  • anonymous_name Char
  • channel_type Selection
    ondelete={'gateway': 'set default'} selection_add=[('gateway', 'Gateway')]
  • company_id Many2one → res.company
    default=False args: 'res.company'
  • gateway_channel_token Char
  • gateway_id Many2one → mail.gateway
    args: 'mail.gateway'
  • gateway_message_ids One2many → mail.notification
    inverse_name='gateway_channel_id' args: 'mail.notification'
  • gateway_token Char
    related='gateway_id.token' required=False string='Gateway related Token'
Public methods (2)
  • channel_info(self)
  • message_post(self, *args, gateway_type=False, **kwargs)
    @api.returns('mail.message', <expr>)

New fields (7)
  • attachment_ids Many2many → ir.attachment
    args: 'ir.attachment', 'mail_compose_gateway_message_ir_attachments_rel', 'wizard_id', 'attachment_id', 'Attachments'
  • object_attachment_ids Many2many → ir.attachment
    column1='wizard_id' column2='attachment_id' comodel_name='ir.attachment' relation='mail_compose_gateway_message_ir_attachments_object_rel' string='Object Attachments'
  • partner_bcc_ids Many2many → res.partner
    column1='wizard_id' column2='partner_id' comodel_name='res.partner' relation='mail_compose_gateway_message_res_partner_bcc_rel' string='Bcc'
  • partner_cc_ids Many2many → res.partner
    column1='wizard_id' column2='partner_id' comodel_name='res.partner' relation='mail_compose_gateway_message_res_partner_cc_rel' string='Cc'
  • partner_ids Many2many → res.partner
    domain=<expr> args: 'res.partner', 'mail_compose_gateway_message_res_partner_rel', 'wizard_id', 'partner_id', 'Additional Contacts'
  • wizard_channel_ids Many2many → res.partner.gateway.channel
    args: 'res.partner.gateway.channel', 'mail_compose_gateway_message_gateway_channel_rel', 'wizard_id', 'channel_id'
  • wizard_partner_ids Many2many → res.partner
    args: 'res.partner', 'mail_compose_gateway_message_res_partner_rel', 'wizard_id', 'partner_id'
Public methods (1)
  • get_mail_values(self, res_ids)

New fields (12)
  • can_set_webhook Boolean
    compute='_compute_webhook_checks'
  • company_id Many2one → res.company
    default=<expr> args: 'res.company'
  • gateway_type Selection
    required=True args: []
  • has_new_channel_security Boolean
    help='When checked, channels are not created automatically. Usable on Telegram'
  • integrated_webhook_state Selection
    readonly=True args: [('pending', 'Pending'), ('integrated', 'Integrated')]
  • member_ids Many2many → res.users
    args: 'res.users'
  • name Char
    required=True
  • token Char
    help='Key used for integration purposes' required=True
  • webhook_key Char
    help='Key used on the connection URL'
  • webhook_secret Char
    help='Key used to ensure that the connection is secure and\n comes from the desired source'
  • webhook_url Char
    compute='_compute_webhook_url'
  • webhook_user_id Many2one → res.users
    default=<expr> help='User that will create the messages' args: 'res.users'
Public methods (6)
  • create(self, mvals)
    @api.model_create_multi
  • gateway_info(self)
  • remove_webhook(self)
  • set_webhook(self)
  • update_webhook(self)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • gateway_id Many2one → mail.gateway
    args: 'mail.gateway'
  • gateway_token Char
Public methods (0)

No public methods.

New fields (2)
  • guest_id Many2one → mail.guest
    required=True args: 'mail.guest'
  • partner_id Many2one → res.partner
    args: 'res.partner'
Public methods (2)
  • create_partner(self)
  • merge_partner(self)

New fields (7)
  • gateway_channel_data Json
    compute='_compute_gateway_channel_ids'
  • gateway_channel_ids Many2many → res.partner.gateway.channel
    compute='_compute_gateway_channel_ids' args: 'res.partner.gateway.channel'
  • gateway_message_id Many2one → mail.message
    index=True string='Original gateway message' args: 'mail.message'
  • gateway_message_ids One2many → mail.message
    inverse_name='gateway_message_id' string='Child gateway messages' args: 'mail.message'
  • gateway_notification_ids One2many → mail.notification
    domain=[('notification_type', '=', 'gateway')] inverse_name='mail_message_id' args: 'mail.notification'
  • gateway_thread_data Json
    compute='_compute_gateway_thread_data'
  • gateway_type Selection
    selection=<expr>
Public methods (0)

No public methods.

New fields (2)
  • message_id Many2one → mail.message
    args: 'mail.message'
  • resource_ref Reference
    selection='_selection_target_model' string='Record reference'
Public methods (1)
  • link_message(self)

New fields (3)
  • gateway_channel_id Many2one → res.partner.gateway.channel
    required=True args: 'res.partner.gateway.channel'
  • message_id Many2one → mail.message
    required=True args: 'mail.message'
  • partner_id Many2one → res.partner
    required=True args: 'res.partner'
Public methods (1)
  • send(self)

New fields (5)
  • gateway_channel_id Many2one → mail.channel
    args: 'mail.channel'
  • gateway_failure_reason Text
    help='Failure reason. This is usually the exception thrown by the email server, stored to ease the debugging of mailing issues.' readonly=1
  • gateway_message_id Char
    readonly=True
  • gateway_type Selection
    selection=<expr>
  • notification_type Selection
    ondelete={'gateway': 'cascade'} selection_add=[('gateway', 'Gateway')]
Public methods (1)
  • send_gateway(self, auto_commit=False, raise_exception=False, parse_mode='HTML')

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • gateway_channel_ids One2many → res.partner.gateway.channel
    inverse_name='partner_id' args: 'res.partner.gateway.channel'
Public methods (1)
  • mail_partner_format(self, fields=None)
    Override to add gateway info.

New fields (5)
  • company_id Many2one → res.company
    related='gateway_id.company_id' store=True args: 'res.company'
  • gateway_id Many2one → mail.gateway
    ondelete='cascade' readonly=True required=True args: 'mail.gateway'
  • gateway_token Char
    readonly=True
  • name Char
    related='gateway_id.name'
  • partner_id Many2one → res.partner
    ondelete='cascade' readonly=True required=True args: 'res.partner'
Public methods (2)
  • mail_format(self)
  • name_get(self)

New fields (1)
  • gateway_ids Many2many → mail.gateway
    args: 'mail.gateway'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/mail
PULL REQUEST
PULL REQUEST[MIG] mail_gateway: Migration to 19.0 (#202)