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

Odoo V17使用mail_composer_cc_bcc发送带BCC邮件失败排查

问题排查:Odoo V17中mail_composer_cc_bcc插件发送BCC邮件报错

我在Odoo V17中使用OCA插件mail_composer_cc_bcc发送带BCC的邮件,自定义代码如下:

def send_email_participant(self):
    self.ensure_one()
    template = self.env.ref('training_mdf.email_template_session_participants')
    seances_ids = self.seance_ids.mapped('participant_ids')
    partner_ids = seances_ids.mapped('partner_id') + self.subscription_ids.mapped(
        'participant_id') + self.subscription_ids.mapped('formation_center')
    ctx = {
        'default_model': 'training.session',
        'default_res_ids': self.ids,
        'default_use_template': bool(template.id),
        'default_template_id': template.id,
        'default_composition_mode': 'comment',
        'default_partner_bcc_ids': [(6, 0, partner_ids.ids)],
        'default_freeze_partner_ids': True,
    }
    return {
        'type': 'ir.actions.act_window',
        'view_mode': 'form',
        'res_model': 'mail.compose.message',
        'views': [(False, 'form')],
        'view_id': False,
        'target': 'new',
        'context': ctx,
    }

运行后通过mail.compose.message向导发送邮件无报错,但出站邮件服务器返回错误:

Unknown error: There may be at most 1 Bcc headers in a message

排查思路

  • 检查BCC收件人列表是否重复
    先确认partner_ids中是否存在重复ID,重复收件人可能导致插件生成邮件头时重复添加BCC字段。可在代码中添加去重处理:partner_ids = partner_ids.unique(),同时过滤掉无邮箱的联系人:partner_ids = partner_ids.filtered(lambda p: p.email)。

  • 排查邮件模板的BCC配置
    打开调用的模板training_mdf.email_template_session_participants,检查模板自身是否已设置BCC收件人。若模板已配置BCC,再加上代码传入的default_partner_bcc_ids,会导致邮件生成时重复添加BCC头,触发服务器报错。

  • 验证插件兼容性
    确认mail_composer_cc_bcc插件是否完全适配Odoo V17版本,部分OCA插件在新版本中可能存在未修复的兼容性问题,导致BCC字段处理逻辑异常。可切换到插件的V17分支重新安装测试。

  • 调试邮件头生成逻辑
    在mail.mail模型的send方法中添加日志,打印实际生成的邮件头信息,确认是否存在多个Bcc条目。例如添加代码:

    import logging
    _logger = logging.getLogger(__name__)
    _logger.info(f"Generated mail headers: {self.headers}")
    

    通过日志排查头信息重复的具体原因。

  • 调整发送模式参数
    当前代码设置default_composition_mode为comment,尝试改为mass_mail测试。不同发送模式下Odoo处理收件人的逻辑不同,mass_mail模式更适配批量BCC发送场景,可避免重复生成BCC头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:18:19