使用Golang net/smtp发邮件返回501:5.5.4错误,请求排查
SMTP 501:5.5.4 错误的原因及修复方案
你的问题出在Message-ID的格式错误——邮件头里的Message-ID字段用了HTML转义字符<和>,而不是SMTP协议要求的原生<和>。
SMTP协议(RFC 5322)规定,Message-ID必须是<本地标识@域名>的格式,服务器会把<和>当成普通字符串解析,导致整个Message-ID不符合语法规范,直接触发501错误。
检查你提供的邮件内容,其他部分都是合规的:
- Date字段格式符合RFC标准
- Content-Type的boundary设置正确,多部分内容的分隔符使用无误
- From、To的邮箱格式没有问题
修复步骤:
把Message-ID行修改为原生尖括号包裹的格式:
Message-ID: <sadfasdfasdfaerrrjoe@mail.blmayer.dev>
在Golang代码里生成Message-ID时,不要做HTML转义处理,直接拼接<和>即可。
内容的提问来源于stack exchange,提问作者blmayer
相关产品推荐
相关产品推荐

