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

使用SendGrid API通过有权代发的Office365账号发件失败问题

解决办法

你的情况是SendGrid只认已验证的a@tony.gr作为发送主体,但你要让收件人看到的发件人是b@tony.gr,这时候得在代码里区分实际发送账号和显示发件人,具体修改如下:

修改代码,添加Sender字段指定a@tony.gr,关键是要通过SetSender()方法配置实际发送的验证账号:

var from = new EmailAddress("b@tony.gr", "B Account");
// 新增:指定SendGrid已验证的实际发送账号
var sender = new EmailAddress("a@tony.gr", "A Account");
var subject = "Test";
var to = new EmailAddress("foo@foo.com", "Recipient");
var plainTextContent = "Hello world !!";
var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, null);
// 设置实际发送者,这一步是核心
msg.SetSender(sender);
var response = await client.SendEmailAsync(msg);

简单说明

  • From字段:收件人邮箱中显示的发件人信息(就是你需要的b@tony.gr)
  • Sender字段:SendGrid后台用来验证发送权限的账号(必须是已配置好代发权限的a@tony.gr)

这样配置后,SendGrid会用a@tony.gr的权限发送邮件,同时收件人看到的发件人是b@tony.gr,完全符合你的需求。如果还是出现邮件未发出的情况,可以去SendGrid控制台的「邮件活动日志」里查看具体投递状态,排查是否存在收件人拒收、垃圾邮件标记等其他问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 09:45:34