You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo14通过AWS SES SMTP向多邮箱合作伙伴发信报554错误

问题场景

使用Odoo14系统,对接AWS SES作为SMTP服务发送邮件,向配置了多个邮箱地址的合作伙伴(格式示例:partner1@mail.com,partner2@mail.com,partner3@mail.com)发送发票邮件时发信失败,返回错误信息如下:

Unknown error: Mail Delivery Failed
Mail delivery failed via SMTP server 'None'.
SMTPDataError: 554
Transaction failed: Missing '<'

该问题仅在使用AWS SES SMTP发信时复现,切换为Gmail等其他SMTP服务时,邮件可正常发送,无异常。

根因说明

AWS SES对SMTP协议的RFC合规性校验远严于Gmail等公共邮箱服务,报错提示的Missing '<',指SMTP会话中传入的邮件地址未按RFC5322规范用<>包裹。
Odoo14原生逻辑处理合作伙伴绑定的多邮箱地址时,会直接读取数据库中逗号分隔的邮箱字符串,未做格式标准化就透传给SMTP服务:Gmail这类服务会自动修正不规范的地址格式,因此发信正常;SES严格执行规范校验,会直接拒绝不符合格式要求的发信请求。
常见触发点:

  • 多邮箱地址拼接时仅用逗号分隔,未给每个独立邮箱包裹<>,逗号后未加标准空格
  • 合作伙伴邮箱字段混入了未格式化的姓名前缀、全角特殊符号、首尾冗余空格等内容
  • 无效邮箱地址混在多收件人列表中,SES校验时直接抛出格式类错误
排查与解决方案
  • 基础校验步骤
    打开对应合作伙伴的编辑表单,检查邮箱字段内容:确认所有地址都是纯邮箱格式,没有混入非邮箱字符,多个邮箱之间用英文半角逗号分隔,逗号后补充1个半角空格。可临时将多邮箱拆分为单个邮箱测试发送,如果单邮箱发送正常,即可确认是多地址拼接的格式问题。同时确认SES侧已完成发件域名验证,账号未处于沙盒模式、未触发发送配额限制。
  • 根治方案:修复Odoo原生发信逻辑
    定位到Odoo源码中addons/base/models/ir_mail_server.py文件的send_email方法,在收件人、抄送、密送地址传入SMTP会话前,增加地址格式标准化处理:将逗号拼接的邮箱字符串拆分为单个地址数组,逐个去除首尾空格,给合法邮箱外层包裹<>,处理完成后再拼接为符合规范的地址列表传入。
    可参考如下处理代码:
    import re
    VALID_EMAIL_PATTERN = re.compile(r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$')
    
    def format_email_addresses(raw_email_str):
        # 拆分多邮箱,过滤空值
        email_list = [e.strip() for e in raw_email_str.split(',') if e.strip()]
        formatted_list = []
        for email in email_list:
            # 已包裹尖括号的地址跳过处理
            if email.startswith('<') and email.endswith('>'):
                formatted_list.append(email)
                continue
            # 合法邮箱包裹尖括号
            if VALID_EMAIL_PATTERN.match(email):
                formatted_list.append(f'<{email}>')
            else:
                formatted_list.append(email)
        return ', '.join(formatted_list)
    
    发信前调用该方法处理所有收件人、抄送人、密送人和发件人地址即可。
  • 无代码修改权限的临时方案
    给配置多邮箱的合作伙伴搭建对应邮件分发列表,在Odoo的合作伙伴邮箱字段仅填写分发列表的单个邮箱地址,由邮件服务侧完成多地址转发;也可以在SES前增加一层SMTP中继服务,由中继层自动修正不规范的邮件地址格式。

内容的提问来源于stack exchange,提问作者Ferp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 15:00:53