如何解决Odoo 17通过Microsoft 365中继时的SendAsDenied错误?
解决Odoo 17通过Microsoft 365 SMTP中继转发邮件时的SendAsDenied错误
问题根源
错误SendAsDenied; erp@my_company.com not allowed to send as personal@gmail.com的核心原因:Odoo在转发外部邮件(来自personal@gmail.com)时,尝试以原发件人身份通过Microsoft 365 SMTP中继发送,但Exchange Online禁止你的catchall邮箱erp@my_company.com冒充外部域(gmail.com)的邮箱地址发件。
解决方案
方案1:强制Odoo使用中继邮箱作为发件人(推荐)
让Odoo转发邮件时统一用catchall邮箱发件,同时在邮件内容中保留原发件人信息:
- 登录Odoo后台,进入设置 > 技术 > 参数 > 系统参数
- 搜索或添加以下系统参数:
mail.default.from:设置为erp@my_company.com(你的catchall邮箱地址)mail.force.smtp.from:设置为True,强制所有SMTP发送的邮件使用上述默认发件人,而非原邮件发件人
- 保存参数后测试转发,此时发件人会显示为
erp@my_company.com,Exchange不会拦截,团队成员仍能在邮件内容中看到原发件人personal@gmail.com的信息。
方案2:调整Exchange发送权限(仅内部域适用)
若需保留原发件人显示,注意此方法仅对内部域邮箱有效,外部域(如gmail.com)无法配置:
- 登录Microsoft 365 Exchange管理中心,进入收件人 > 邮箱
- 找到
erp@my_company.com邮箱,进入权限 > 发送权限 - 添加内部团队成员邮箱,授予SendAs权限
- 此方法无法解决外部发件人(如
personal@gmail.com)的转发问题,仅作内部场景补充。
方案3:配置团队邮箱作为转发发件人
让Odoo使用CRM团队邮箱sales.us@my_company.com转发邮件:
- 进入Odoo的CRM团队设置,找到对应
sales.us@my_company.com的团队 - 在邮件选项卡中,设置回复邮件使用为团队邮箱
sales.us@my_company.com - 在Exchange管理中心,给
erp@my_company.com授予对sales.us@my_company.com的SendOnBehalfOf权限 - 转发时发件人会显示为
sales.us@my_company.com(由erp代为发送),Exchange会允许该操作。
内容的提问来源于stack exchange,提问作者Sean McCarthy
相关产品推荐
相关产品推荐

