我一直在浏览以下一段 Azure 函数中的 SendGrid 邮件程序代码,
[FunctionName("SendEmail")]
public static async void Run(
[ServiceBusTrigger("myqueue", Connection = "ServiceBusConnection")] Message
email,
[SendGrid(ApiKey = "CustomSendGridKeyAppSettingName")]
IAsyncCollector<SendGridMessage> messageCollector)
{
var emailObject = JsonConvert.DeserializeObject<OutgoingEmail>
(Encoding.UTF8.GetString(email.Body));
var message = new SendGridMessage();
message.AddTo(emailObject.To);
message.AddContent("text/html", emailObject.Body);
message.SetFrom(new EmailAddress(emailObject.From));
message.SetSubject(emailObject.Subject);
await messageCollector.AddAsync(message);
}
public class OutgoingEmail
{
public string To { get; set; }
public string From { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
}
如果我的理解是正确的,这将向消息队列“myqueue”发送一条消息,但我感到困惑的是,我需要将自定义侦听器写入队列“myqueue”以从队列中获取消息并编写逻辑来调用“client。SendEmailAsync“发送邮件或SendGrid bindng背后有一些魔力来自动取件邮件并触发邮件?
你的理解不太正确。
这将侦听队列上的消息。
然后调用 SendGrid API 来发送传入的消息。此函数需要 JSON 序列化消息作为队列的输入:
[ServiceBusTrigger("myqueue", Connection = "ServiceBusConnection")] Message email