通过 SendGrid 发送电子邮件时,Azure Web 应用程序是否必须进行消息排队

Is message queueing mandatory for Azure web app when sending emails through SendGrid

我有一个通过 SendGrid 服务发送电子邮件的 Azure Web 应用程序 (Asp.net MVC & WebAPI)。我没有使用 SendGrid 的 API,而是使用我在 web.config 中配置并定向到 SendGrid 的 .net 内置 SMTP。

我现在想知道我是否还需要在我的解决方案中使用消息队列应用程序实际将电子邮件发送到 SendGrid 以最大限度地减少我的网络应用程序的 request/response 次?

Azure 已经有队列存储可供我使用,但我想知道其他人是如何实现的?我也在寻找使用排队的 Azure Web 应用程序的最简单示例(如果存在的话)。

当我在单个请求期间要发送多封电子邮件以使我的应用程序可扩展时,我希望消息队列会变得重要。目前,当我的后端执行代码时,我正在同步发送电子邮件,到目前为止,它工作正常的电子邮件数量很少。

如果您的应用程序需要异步管理和发送批量电子邮件,最好有单独的应用程序来批量处理电子邮件。

在我最近的项目中,我使用 Web 角色、辅助角色和服务总线队列创建了单独的应用程序。 Web 角色是一个 Web API,用于应用程序 post 批量电子邮件并将其放入服务总线队列。然后工作者角色将负责处理队列并发送电子邮件。这使我能够异步发送电子邮件并将任何电子邮件或消息状态存储在 table 存储中。

此外,这种方法通过使用包装器来处理 Web api 集成,帮助我在不同的项目中使用相同的通知应用程序(电子邮件发送应用程序)。