mail/models/mail_gateway_allowed.py
Данил Воробьев 6e6f15d803 initial commit
2024-05-03 09:40:35 +00:00

51 lines
2.0 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from markupsafe import Markup
from odoo import _, api, fields, models, tools
class MailGatewayAllowed(models.Model):
"""List of trusted email address which won't have the quota restriction.
The incoming emails have a restriction of the number of records they can
create with alias, defined by the 2 systems parameters;
- mail.gateway.loop.minutes
- mail.gateway.loop.threshold
But we might have some legit use cases for which we want to receive a ton of emails
from an automated-source. This model stores those trusted source and this restriction
won't apply to them.
"""
_description = 'Mail Gateway Allowed'
_name = 'mail.gateway.allowed'
email = fields.Char('Email Address', required=True)
email_normalized = fields.Char(
string='Normalized Email', compute='_compute_email_normalized', store=True, index=True)
@api.depends('email')
def _compute_email_normalized(self):
for record in self:
record.email_normalized = tools.email_normalize(record.email)
@api.model
def get_empty_list_help(self, help_message):
get_param = self.env['ir.config_parameter'].sudo().get_param
LOOP_MINUTES = int(get_param('mail.gateway.loop.minutes', 120))
LOOP_THRESHOLD = int(get_param('mail.gateway.loop.threshold', 20))
return Markup(_('''
<p class="o_view_nocontent_smiling_face">
Add addresses to the Allowed List
</p><p>
To protect you from spam and reply loops, Odoo automatically blocks emails
coming to your gateway past a threshold of <b>%(threshold)i</b> emails every <b>%(minutes)i</b>
minutes. If there are some addresses from which you need to receive very frequent
updates, you can however add them below and Odoo will let them go through.
</p>''')) % {
'threshold': LOOP_THRESHOLD,
'minutes': LOOP_MINUTES,
}