Outlook O365合法邮件地址被退回550 5.1.3错误问题咨询
退信问题原因分析及解决方案
退信原因
- Exchange Server的STOREDRV提交组件对收件人地址格式校验严格,要求显示名包含空格、括号等特殊字符时,必须使用双引号包裹,你当前使用单引号包裹显示名的格式不符合Exchange的校验规则,因此返回
550 5.1.3 STOREDRV.Submit; invalid recipient address错误。 - System.Net.Mail.MailAddress类的实现做了宽松兼容,允许单引号作为包裹特殊字符显示名的替代符号,所以本地C#代码校验不会抛出异常,但这种非标准格式不被Exchange服务认可。
- 如果你是从Outlook自动填充列表选择的收件人,开启缓存模式的情况下,Outlook本地的自动完成缓存可能存储了格式错误的地址条目,会优先调用错误格式的地址发送邮件。
解决方案
- 手动修改收件人地址格式,将显示名外层的单引号替换为双引号,正确格式为:
"First Last (Home)" <client@domain.com>,修改后重新发送即可。 - 清理Outlook自动完成缓存中的错误条目:输入收件人时,在下拉建议列表中找到该收件人的条目,点击条目右侧的删除按钮清除缓存,之后手动输入正确格式的地址即可。
- 若为代码批量发信场景,构造收件人地址时主动对包含特殊字符的显示名使用双引号包裹,不要依赖类库的隐式兼容,避免不同邮件服务之间的兼容性问题。
内容的提问来源于stack exchange,提问作者ezG
相关产品推荐
相关产品推荐

