From b7cee34c4bf657d9d167cc0bfb55f149de76548e Mon Sep 17 00:00:00 2001 From: ivan deng Date: Tue, 9 May 2023 18:35:56 +0800 Subject: [PATCH] fix email send --- app_common/__manifest__.py | 4 ++-- app_common/models/__init__.py | 2 ++ app_common/models/ir_mail_server.py | 2 +- app_common/models/mail_mail.py | 16 ++++++++++++++++ 4 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 app_common/models/mail_mail.py diff --git a/app_common/__manifest__.py b/app_common/__manifest__.py index c87e9789..1013f9ed 100644 --- a/app_common/__manifest__.py +++ b/app_common/__manifest__.py @@ -33,7 +33,7 @@ { 'name': "Sunpop Odooapp Common Func", - 'version': '16.23.05.04', + 'version': '16.23.05.09', 'author': 'Sunpop.cn', 'category': 'Base', 'website': 'https://www.sunpop.cn', @@ -63,7 +63,7 @@ 5. Odoo 16, 企业版,社区版,多版本支持 ''', 'depends': [ - 'base', + 'mail', 'web', ], 'data': [ diff --git a/app_common/models/__init__.py b/app_common/models/__init__.py index a31d49dd..2619b0b3 100644 --- a/app_common/models/__init__.py +++ b/app_common/models/__init__.py @@ -27,5 +27,7 @@ from . import ir_ui_view from . import ir_cron from . import res_users from . import ir_mail_server +from . import mail_mail + diff --git a/app_common/models/ir_mail_server.py b/app_common/models/ir_mail_server.py index 921ddb09..b3c8143c 100644 --- a/app_common/models/ir_mail_server.py +++ b/app_common/models/ir_mail_server.py @@ -18,7 +18,7 @@ class IrMailServer(models.Model): email_to = message['To'] # 忽略掉无效email,避免被ban - if email_to.index('example.com') != -1 or email_to.index('@sunpop.cn') != -1 or email_to.index('@odooapp.cn') != -1: + if email_to.find('example.com') != -1 or email_to.find('@sunpop.cn') != -1 or email_to.find('@odooapp.cn') != -1: _logger.error(_("=================Email to ignore: %s") % email_to) raise AssertionError(_("Email to ignore: %s") % email_to) diff --git a/app_common/models/mail_mail.py b/app_common/models/mail_mail.py new file mode 100644 index 00000000..3b4c42ae --- /dev/null +++ b/app_common/models/mail_mail.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- + +from odoo import api, fields, models, _ + +import logging +_logger = logging.getLogger(__name__) + +class MailMail(models.Model): + _inherit = "mail.mail" + + # 猴子补丁模式,改默认发邮件逻辑 + def _send(self, auto_commit=False, raise_exception=False, smtp_session=None): + for m in self: + if m.email_to and (m.email_to.find('example.com') != -1 or m.email_to.find('@sunpop.cn') != -1 or m.email_to.find('@odooapp.cn') != -1): + self = self - m + return super(MailMail, self)._send(auto_commit, raise_exception, smtp_session)