Odoo Mail

Odoo 可以通过 Email 创建单据, 更新单据, 也可以通过 Email 将单据的状态更新通知发送给相关的人员

架构如下图所示

对于接收邮件, 可以通过 mailgate.py 脚本将邮件转发给 odoo 或者 使用 fetch mail 功能 从pop/imap 下载到 odoo

Email 进入 odoo 之后的处理流程大致是

  1. 重复邮件, 则不处理
  2. 退信
  3. 回信, 则更新单据状态
  4. 根据 alias 表, 创建相应的记录

   

对单据状态更新的处理逻辑

使用 message_post() 更新单据的状态, 会创建一个消息, 并附加到单据上

消息创建之后, 会通知 单据的关注者, 根据 用户的设置, 将会

  1. 系统内部通知, 出现在 discuss / inbox
  2. 通过邮件发送通知

   

发送系统内部通知

通过 bus 发布通知 "mail.message/inbox" 因为 webclient 注册了响应这个事件

它会 更新 store 里面的 inbox

   

备注:

Odoo 17 每个公司, 都有自己的 alias domain ; 之前的版本, 公用同一个

Odoo17 增加了一个新通知方式 web push