邮件

可选邮件别名混合类

17.0+ 新增了mail.alias.mixin.optional 对象。

这个模块是 Odoo 框架中的一个“可选邮件别名混合类”(AliasMixinOptional),主要用于给其他模型动态地添加邮件别名(mail alias)功能。它的核心作用和设计理念如下:

主要用途

  • 动态管理邮件别名:允许模型实例拥有自己的邮件别名(如 xxx@domain.com),用于邮件网关自动创建记录、分配任务等。
  • 按需创建别名:只有在需要(如设置了 alias_name)时才会创建 mail.alias 记录,避免无用的空别名。
  • 别名字段非强制:别名相关字段不是必填项,模型可以选择性地使用邮件别名功能。
  • 自动同步:当模型的公司或域名等信息变化时,自动同步别名的相关字段。

主要功能点

  1. 字段定义

    • alias_id:指向 mail.alias 的外键。
    • alias_namealias_domain_idalias_domain 等:通过 related 字段与 mail.alias 关联,方便直接在主模型上读写。
    • alias_email:计算字段,拼接出完整的邮件别名地址。
  2. 创建与写入逻辑

    • create 方法:如果传入了 alias_name,则自动创建 mail.alias 记录,并与主记录关联。
    • write 方法:如果设置了 alias_name 且还没有别名,则自动创建别名;如果只更新别名相关字段,则只更新 mail.alias
    • 字段分流:通过 _alias_filter_fields 方法区分哪些字段属于 mail.alias,哪些属于主模型。
  3. 删除与复制

    • unlink:删除主记录时,自动删除对应的 mail.alias
    • copy_data:复制记录时,去除不能直接写入的别名字段。
  4. 辅助方法

    • _require_new_alias:判断是否需要新建别名。
    • _alias_get_creation_values:生成创建别名时需要的字段值。
    • _alias_get_alias_domain_id:根据公司等信息获取正确的别名域名。

适用场景

  • 适合需要邮件网关自动创建/分配记录的业务场景(如工单、项目、CRM 线索等)。
  • 适合希望按需、动态地为部分记录分配邮件别名,而不是所有记录都强制有别名的场景。

总结

这个模块的本质是为 Odoo 的任意模型提供“可选的邮件别名”能力,且实现了自动化、动态化和安全的别名管理,避免了无用数据和手动同步的麻烦。

results matching ""

    No results matching ""