You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo14自定义模块message_new方法不触发无法接收邮件问题咨询

问题根因

从系统日志可见,邮件路由规则配置是正确的,已经正常匹配到test.mailer模型,没有触发自定义逻辑的核心原因是message_new方法的定义不符合Odoo框架的要求:

  • 模型方法缺失必填的第一个参数self
  • 入参命名错误,你注释了正确的参数定义,误将第一个参数命名为msg_dict,和框架调用时的入参规则不匹配
  • 方法没有返回父类方法的执行结果,且没有处理必填字段partner_id的赋值逻辑,就算触发也会因为必填字段为空报错
修正后的完整代码
from odoo import api, fields, models, tools, _
import logging
_logger = logging.getLogger(__name__)


class TestMailer(models.Model):
    _name = 'test.mailer'
    _inherit = ['mail.alias.mixin','mail.thread', 'mail.activity.mixin']
    _description = 'Sort Email'
    
    name = fields.Char(string='Name')
    email_from = fields.Char(string='email from')
    email_cc = fields.Char(string='email cc')
    mail_body = fields.Text(string='mail body')
    partner_id = fields.Many2one('res.partner', 'Partner',required=True,select=True)

    @api.model
    def message_new(self, msg, custom_values=None):
        _logger.warning('hi i am message_new')
        # 处理必填字段partner_id:可根据发件人邮箱匹配已有联系人,没有的话可直接创建
        partner = self.env['res.partner'].search([('email', '=', msg.get('email_from'))], limit=1)
        if not partner:
            partner = self.env['res.partner'].create({
                'name': msg.get('from'),
                'email': msg.get('email_from')
            })
        # 组装自定义字段值
        custom_values = custom_values or {}
        custom_values.update({
            'name': msg.get('subject'),
            'email_from': msg.get('email_from'),
            'email_cc': msg.get('cc'),
            'mail_body': msg.get('body'),
            'partner_id': partner.id
        })
        return super(TestMailer, self).message_new(msg, custom_values=custom_values)
注意事项
  • 调用父类方法时入参名要和方法定义保持一致,不要混用msg和msg_dict
  • partner_id为必填字段,必须提前赋值,否则创建test.mailer记录时会抛出校验错误
  • 升级模块后再测试邮件接收即可看到自定义日志输出,同时会自动创建对应test.mailer记录

内容的提问来源于stack exchange,提问作者Moaz Mabrok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 02:15:05