原文:https://blog.csdn.net/qingtianjushi/article/details/79285718

Odoo的邮件跟踪功能是做的非常好的, 可以通过系统邮件,当客户回复邮件之后,系统会自动将邮件内容作为消息与原有记录进行对应。
很多初学者,发送邮件时常常遇到如下错误。

为什么发送地址会变为”bounce 12-sale.order-6@odooqs.com”呢?
我们来分析源代码,参见ir_mail_server.py中send_mail 方法:

我们看到 smtp_from 的获取值的先后顺序,其中最后一个值message[\\’From\\’],指的是当前用户的邮箱。如果我们要用当前用户的邮箱发送邮件,是不太好的, 因为,我们就需要为每个用户设置一个发送邮件的账号。
message[\\’Return-Path\\’] 来源自mail_mail.py 中_send 方法,代码如下:

 

从上述代码可以看出,icp.config_paramerter,中存在 bounce_alias,catchall_domain ,就会生成 Return-Path 的值
self._get_default_bounce_address()来源自ir_mail_server.py 中_get_default_bounce_address方法:

 

从以上可以得知 _get_default_bounce_address 发送邮件名来源于 mail.bounce.alias ,默认值是postmaster-odoo.
根据以上代码的值,不删除mail.bounce.alias的值,会导致发送地址错误,删除mail.bounce.alias的值,导致默认发送邮箱名是postmaster-odoo.
综上所述,在不修改代码的情况,我们需要如何做才能正常收发邮件呢?
1.设置自己公司的企业邮箱,我使用的是免费的腾讯企业邮箱。
2.在自己企业内部邮箱中设置postmaster-odoo@xxx.com ,catchall@xxx.com(专门用于接收邮件) 等2个账号。
3.在Odoo 系统中设置SMTP 服务器,用户名必须为postmaster-odoo@xxx.com.
4.在Odoo 系统中设置POP3服务器,用户名必须为catchall@xxx.com.
5.在Odoo系统中设置邮箱域名,对应xxx.com.
6.为每个用户设置一个邮箱,否则发送邮件时,会报错,要求你设置邮箱。 这个邮箱也可以用户自己在用户资料中设置更改。
最后一步,也是最重要的,在系统参数中删除 mail.bounce.alias 这条记录就可以了,否则,前功尽弃。小泥巴的博客

发表评论

电子邮件地址不会被公开。 必填项已用*标注