ASP.NET Core 6中C#设置Amazon SES发件人名称报500如何解决
正确设置Amazon SES发件人名称的方法
标准格式要求
发件人地址必须符合RFC邮件规范,正确格式是:"显示名称" <邮箱地址>。你之前尝试的无引号拼接、直接加空格的格式不符合规范,这才导致SES返回500错误。
ASP.NET Core中的两种实现方式
1. 手动构造规范字符串
直接按照RFC格式拼接发件人字符串,注意名称要用双引号包裹:
var sender = "\"John Smith\" <alert-no-reply@example.com>"; // 或者公司名称 var sender = "\"XX科技有限公司\" <alert-no-reply@example.com>";
把这个字符串赋值给SES发送请求的Source属性即可。
2. 通过邮件类自动处理(更推荐)
如果你用System.Net.Mail或MailKit这类邮件库,直接通过对象属性设置,无需手动拼接:
System.Net.Mail示例
var mail = new MailMessage(); // 第一个参数是邮箱,第二个是显示名称 mail.From = new MailAddress("alert-no-reply@example.com", "XX科技有限公司");
MailKit示例(.NET 6+更推荐的现代库)
var message = new MimeMessage(); message.From.Add(new MailboxAddress("XX科技有限公司", "alert-no-reply@example.com"));
这种方式会自动生成符合规范的发件人格式,避免手动拼接出错。
额外检查项
- 确认你的Amazon SES已经完成了该发件人邮箱或整个自有域名的验证,未验证的地址会导致发送失败。
- 排查应用中是否有对发件人地址的额外校验逻辑,避免格式被错误转义或修改。
内容的提问来源于stack exchange,提问作者niico
相关产品推荐
相关产品推荐

