ODOO17,16-10各版本配置阿里邮箱腾讯邮箱,邮件失败解决方法,销售及费用邮箱配置实例

在odoo12以上的版本中,邮件已经很容易配置。

但即使是最新17,16版本,都会使用代发模式。这在国内其实不太好使,因为发件人和发件账号不一致,基本会被判定为垃圾或者广告邮件。本文主要解决此问题。

强烈建议阿里企业云邮箱,支持相同邮件域代发(例如实际和代发邮件帐户都是 @.cn),省却大量麻烦。腾讯企业邮箱虽然也支持代发,但不支持odoo经过bounce后的发件地址,所以会比较麻烦。学习本文后,就直接解决我们客户使用腾讯或者阿里企业邮箱发邮件问题。

设置正常后,发出的邮件中,显示发件人均为您设置的本公司默认发件 email,如 sales@odooai.cn ,实际的发邮件帐户也是sales.,(旧模式为postmaster-odoo,客户收到邮件会显示出由xxx代发)。默认设置中多数邮件均为实时发送,少数日程型邮件为每小时检查一次进行发送,每5分钟进行一次收件。

当你正常使用odoo的邮件集成后,你会发现odoo为你打开了一扇全新的大门。关键信息主动提醒,各种原生统计分析定期自动汇报,信息自动化将让你尽享方便,充分感受到领导的地位,同时也会引导你走向钉钉/微信的应用整合康庄大道。

 

"服务器拒绝发件人地址"这种报错基本都是因为代发导致,参考下文处理即可。

我们也做好了相关模块,安装使用即可。腾讯邮阿里邮和一般国内邮箱基本直接使用 app_send_mail_no_bounce

中文应用商店市场

https://www.odooapp.cn/apps/modules/app_send_mail_no_bounce
odoo官方市场

 https://apps.odoo.com/apps/modules/16.0/app_send_mail_no_bounce/


先看一下成功设置后的效果,邀请邮件如下,可以直接在本站微信注册新用户,然后验证邮箱体验。

ODOO17,16-10各版本配置阿里邮箱腾讯邮箱,邮件失败解决方法,销售及费用邮箱配置实例

如果你很不幸运的无法使用阿里邮,那么下文中也有改代码的方法,如果你比较懒,可以直接安装我们在odoo应用市场上的收费补丁app_send_mail_no_bounce,安装完即可正常使用腾讯邮箱等。这个补丁把发件server的算法优化,设置起来更简单了。支持16-13各版本。

下面我们来说说如何在odoo里进行邮箱的正确设置

 

odoo中,邮件收发服务器配置都设置好并测试ok,发送邮件时却失败,原因在于收件人(isp反垃圾邮件策略)会反查来源地址,如不存在此账户,则拒绝接收.

另一个原因是国内与国外的邮箱不同。odoo默认使用catchall来做回复邮件地址, 为正确路由,会将发件人设置为 bounce-xxx的方式,导致发件人和认证信息不符合。

 

odoo默认发件者为postmaster-odoo@abc.com( 后缀为你在odoo中设置的“别域名),如果你的邮件服务器上没有此默认发件者账号,就会有被拒绝,导致发送邮件不成功,解决办法:

1 .出向配置中增加邮箱账号“postmaster-odoo@abc.com”,设置-->参数-->系统参数为 mail.bounce.alias 为 "postmaster-odoo"

2.【对支持bounce的邮局比如阿里云企业邮局可以不用改】在addons\base\ir\ir_mail_server.py 中修改代码,odoo12注释445行,odoo11则注释427行,odoo10则注释 396行,改为如下内容

# smtp_from = from_rfc2822[-1]"
smtp_from = self._get_default_bounce_address()

=======

3、输入邮箱账户、密码信息,根据需要选择使用的邮件协议,输入相应的服务器信息:

阿里云企业邮箱现在网页版默认为 SSL 加密登录,如需全程 SSL 加密,收费版邮箱请访问 mail.mxhichina.com 登录;免费版请使用 qiye.aliyun.com 登录。

 

POP 协议,接收服务器名称:pop3.mxhichina.com,或者pop3.您的邮箱域名,端口号110,ssl加密端口995。

IMAP 协议,接收服务器名称:imap.mxhichina.com,端口号143,ssl加密端口993。

 

注意,odoo要用ssl加密方式,特别是在阿里云服务器。

发送服务器名称:smtp.mxhichina.com,端口25,ssl加密端口465。

 

4、为每一个用户设置收邮件,有两种办法,第一种是如果邮件服务器有catchall功能,那么配置好,入向邮箱增加 "catchall@abc.com";第二种就是一个一个设置了。

ODOO17,16-10各版本配置阿里邮箱腾讯邮箱,邮件失败解决方法,销售及费用邮箱配置实例

5、销售用email实例。

设置好收件帐号后,将不同销售团队设置邮件别名,如图直销团队用osales@sunpop.cn,则发邮件至 osales@sunpop.cn,则会在该团队生成一个商机

ODOO17,16-10各版本配置阿里邮箱腾讯邮箱,邮件失败解决方法,销售及费用邮箱配置实例

6、费用email实例。

配置好后,向 oexpense@sunpop.cn 发如图的邮件,则会生成相关费用明细及说明,并对应好费用提交人。十分方便。

ODOO17,16-10各版本配置阿里邮箱腾讯邮箱,邮件失败解决方法,销售及费用邮箱配置实例


ODOO17,16-10各版本配置阿里邮箱腾讯邮箱,邮件失败解决方法,销售及费用邮箱配置实例

==========

7. 万网云邮箱所需要设置的解析记录如下:

 

操作解析的域名 解析记录类型 优先级 解析记录值
@ MX 5 mxn.mxhichina.com.
@ MX 10 mxw.mxhichina.com.
pop3 CNAME  - pop3.mxhichina.com.
smtp CNAME  - smtp.mxhichina.com.
mail CNAME  - mail.mxhichina.com.
@ TXT  - v=spf1 include:spf.mxhichina.com -all

 

=======================

 

参考

http://renjie.me

odoo邮件基础

这里我们先将问题一分为二,按照顺序从发送开始说,理解透彻了发送模式对后续接收及分发原理会有一定的帮助

相关系统参数:
mail.bounce.alias(默认值bounce,无界面设置)
mail.catchall.domain(默认值odoo域名,可以在通用设置别名域里设置)

发送账号配置:
默认localhost用于本地自建smtp邮件发送服务器使用,如Postfix服务
一般配置成企业邮箱专门为之新建的一个ODOO账号,如odoo@renjie.me

发件名义原则:
1、系统邮件如新用户邀请、密码重置等以公司Email设置里的邮箱名义发送,如info@renjie.me
2、个人邮件如操作者自己的业务沟通,以用户对应的联系人Email设置里的邮箱名义发送,如i@renjie.me

三大发送模式:
1、简单发送(mail.catchall.domain不设置)
直接用发送账号发出,发件人需要与发送账号相同或者是其同一账号下的其他别名,否则会被邮件系统拒绝,如SMTPSenderRefused: 501 mail from address must be same as authorization user test@renjie.me。接收方也直接回复该真实地址,非常容易理解,属于最原始的模式,最适合做邮件通知这种只集成发送不用集成接收的情况

2、代理发送(mail.catchall.domain设置,mail.bounce.alias不设置)
间接用postmaster-odoo账号代发出,发送账号需要具有该名称授权,否则也会被邮件系统拒绝,如SMTPSenderRefused: 501 mail from address must be same as authorization user postmaster-odoo@renjie.me。接收方默认回复catchall专用地址,由于属于代发,且发件地址、代发地址、回复地址都可以不相同,第一次使用还会有些颠覆邮箱观,甚至某些客户端出于谨慎还会出现欺诈提醒,但这确是目前国内用的最多的务实模式,大部分教程都是以此展开详解

3、反弹发送(mail.catchall.domain设置,mail.bounce.alias设置)
间接用bounce地址代发出,如bounce+5-res.users-2@renjie.me或者bounce+5@renjie.me,其中+5为邮件流水号,-2为单据流水号,可见前者还是单据相关邮件,接收方也默认回复catchall专用地址,因为其涉及到邮件接收等相关知识,而且国内免费邮箱服务基本没有完美支持,本文将不深入探讨,待以后ODOO邮件接收集成的时候在讨论如何配合Postfix实现完美收发自如

ODOO的推式规则和拉式规则的理解