social/mail_autogenerated_header/models/mail_thread.py

35 lines
1.4 KiB
Python

# Copyright 2018 Therp BV <https://therp.nl>
# Copyright 2022 Hunki Enterprises BV <https://hunki-enterprises.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
import logging
from odoo import api, models
_logger = logging.getLogger(__name__)
class MailThread(models.AbstractModel):
_inherit = 'mail.thread'
@api.model
def message_route_process(self, message, message_dict, routes):
""" Set context key to suppress notification for autogenerated incoming
mails """
if self._message_route_process_autoreply(message, message_dict, routes):
_logger.info(
'Ignoring email %s from %s because it seems to be an auto '
'reply', message.get('Message-ID'), message.get('From'),
)
self = self.with_context(mail_autogenerated_header=message)
return super(MailThread, self).message_route_process(
message, message_dict, routes,
)
@api.model
def _message_route_process_autoreply(self, message, message_dict, routes):
""" Determine if some message is an autoreply """
return (
message['Auto-Submitted'] and message['Auto-Submitted'] != 'no' or
message['X-Auto-Response-Suppress'] and set(
message['X-Auto-Response-Suppress'].split(', ')
) & set('AutoReply', 'All')
)