Почтовая программа SendGrid с функцией Azure V2 - PullRequest
0 голосов
/ 12 февраля 2019

Я просматривал приведенный ниже фрагмент кода для почтовой программы SendGrid в функциях Azure,

[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 есть некоторая магия для автоматического захвата сообщения и запуска почты

1 Ответ

0 голосов
/ 12 февраля 2019

Ваше понимание не совсем верно.

Это LISTEN для сообщения в очереди.

А затем вызовите API SendGrid для отправки переданного сообщения. Эта функция ожидает сериализованное сообщение JSON в качестве ввода из очереди:

[ServiceBusTrigger("myqueue", Connection = "ServiceBusConnection")] Message email
...