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

Azure Web App中Fluent Email SendGrid发送邮件的异常行为问题

问题:Azure Web App部署后SendGrid仅能发送邮件到个人Gmail,无日志记录

我使用Fluent Email的SendGrid Provider发送邮件,代码如下:

public async void GenerateEmail(string recipientEmail, string title, string tagName, string messageBody)
{
    var email = _email
        .To(recipientEmail)
        .Subject(title)
        .Tag(tagName)
        .Body(messageBody);
    await _email.SendAsync();
}

本地运行时所有邮箱(包括Gmail、Hotmail)都能正常收到邮件,但部署到Azure Web App API后,只有个人Gmail账户能收到邮件,发送到其他Gmail和Hotmail邮箱均失败,而且SendGrid活动日志中完全没有这些失败请求的记录。

我当前用的是SendGrid免费版,没有专用IP,知道这可能影响送达率,但至少应该在SendGrid的退信数据里看到记录,实际却毫无痕迹。想问问有没有其他开发者遇到过类似问题,再决定是否升级SendGrid套餐。


可能的排查方向:

  • 异步方法误用:你的GenerateEmail用了async void,在ASP.NET环境中,这种无返回值的异步方法会在请求结束后被宿主强制终止,可能导致SendAsync还没完成就被中断,邮件根本没发送到SendGrid,自然不会有日志。建议改成public async Task GenerateEmail(...),并确保调用方正确等待这个任务完成。
  • Azure环境配置问题:检查Azure Web App的环境变量是否正确配置了SendGrid的API密钥,有没有和本地配置不一致的地方。比如是否误把测试环境的密钥放到了生产环境,或者密钥权限不足。
  • SendGrid发送限制:免费版SendGrid有发送量限制(每天100封),也可能有针对特定域名的发送限制,虽然本地正常,但Azure部署后的发送行为可能触发了SendGrid的自动过滤,直接拦截了请求而没有生成日志。可以尝试在Azure上少量测试发送,或者查看SendGrid的账户状态是否有异常。
  • Azure网络出站限制:Azure Web App的出站网络是否有防火墙规则阻止了对SendGrid API的请求?可以在Azure门户的Web App“网络”设置里检查出站规则,或者启用应用服务日志查看是否有网络相关的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:54:28