Odoo 可以通过 Email 创建单据, 更新单据, 也可以通过 Email 将单据的状态更新通知发送给相关的人员
架构如下图所示
对于接收邮件, 可以通过 mailgate.py 脚本将邮件转发给 odoo 或者 使用 fetch mail 功能 从pop/imap 下载到 odoo
Email 进入 odoo 之后的处理流程大致是
- 重复邮件, 则不处理
- 退信
- 回信, 则更新单据状态
- 根据 alias 表, 创建相应的记录
对单据状态更新的处理逻辑
使用 message_post() 更新单据的状态, 会创建一个消息, 并附加到单据上
消息创建之后, 会通知 单据的关注者, 根据 用户的设置, 将会
- 系统内部通知, 出现在 discuss / inbox
- 通过邮件发送通知
发送系统内部通知
通过 bus 发布通知 "mail.message/inbox" 因为 webclient 注册了响应这个事件
它会 更新 store 里面的 inbox
备注:
Odoo 17 每个公司, 都有自己的 alias domain ; 之前的版本, 公用同一个
Odoo17 增加了一个新通知方式 web push