邮件
可选邮件别名混合类
17.0+ 新增了mail.alias.mixin.optional 对象。
这个模块是 Odoo 框架中的一个“可选邮件别名混合类”(AliasMixinOptional),主要用于给其他模型动态地添加邮件别名(mail alias)功能。它的核心作用和设计理念如下:
主要用途
- 动态管理邮件别名:允许模型实例拥有自己的邮件别名(如
xxx@domain.com),用于邮件网关自动创建记录、分配任务等。 - 按需创建别名:只有在需要(如设置了
alias_name)时才会创建mail.alias记录,避免无用的空别名。 - 别名字段非强制:别名相关字段不是必填项,模型可以选择性地使用邮件别名功能。
- 自动同步:当模型的公司或域名等信息变化时,自动同步别名的相关字段。
主要功能点
字段定义
alias_id:指向mail.alias的外键。alias_name、alias_domain_id、alias_domain等:通过 related 字段与mail.alias关联,方便直接在主模型上读写。alias_email:计算字段,拼接出完整的邮件别名地址。
创建与写入逻辑
create方法:如果传入了alias_name,则自动创建mail.alias记录,并与主记录关联。write方法:如果设置了alias_name且还没有别名,则自动创建别名;如果只更新别名相关字段,则只更新mail.alias。- 字段分流:通过
_alias_filter_fields方法区分哪些字段属于mail.alias,哪些属于主模型。
删除与复制
unlink:删除主记录时,自动删除对应的mail.alias。copy_data:复制记录时,去除不能直接写入的别名字段。
辅助方法
_require_new_alias:判断是否需要新建别名。_alias_get_creation_values:生成创建别名时需要的字段值。_alias_get_alias_domain_id:根据公司等信息获取正确的别名域名。
适用场景
- 适合需要邮件网关自动创建/分配记录的业务场景(如工单、项目、CRM 线索等)。
- 适合希望按需、动态地为部分记录分配邮件别名,而不是所有记录都强制有别名的场景。
总结
这个模块的本质是为 Odoo 的任意模型提供“可选的邮件别名”能力,且实现了自动化、动态化和安全的别名管理,避免了无用数据和手动同步的麻烦。