Jakiś czas temu opisałem jak można zintegrować usługę SendGrid z Azure Functions (artykuł: Wysyłanie maili z Azure Functions – SendGrid). Tekst jest cały czas aktualny, w szczególności jeśli chodzi o konfigurację samej usługi SendGrid. Dodać należy natomiast cześć dotyczącą integracji z Azure Functions v2. Od jakiegoś czasu wersja v2 funkcji jest już oficjalnie dostępna i wprowadza zmiany architektoniczne do środowiska.

Do tej pory (wersja v1 funkcji) miała wbudowane w siebie elementy odpowiedzialne za integrację. Powodowało to, że za każdym razem, gdy Microsoft próbował coś zmienić w tych elementach musiał zmienić całą platformę. W wersji drugiej, rzeczy związane z integracją zostały wyciągnięte poza ten obszar i są niezależne od środowiska Azure Functions. Powoduje to, że możemy już samodzielnie rozszerzyć platformę o nowe funkcjonalności. Dodatkowo zmienił się sposób wykorzystania tych elementów w kodzie.

W celu ich wykorzystania musimy zainstalować odpowiednie pakiety nuget. W przypadku SendGrid-a jest to Microsoft.Azure.WebJobs.Extensions.SendGrid. Po jego zainstalowaniu kod, który wykorzystywaliśmy w przypadku poprzedniej wersji funkcji nie będzie działał. Niestety zostały zmienione klasy za to odpowiedzialne. Nowy kod wygląda znajomo, ale różni się wykorzystanymi typami:

using SendGrid.Helpers.Mail;

public static class SendThankYouEmailMessage
{
  [FunctionName("SendThankYouEmailMessage")]
  public static void Run(
  [SendGrid(
    To = "...",
    Subject = "...",
    Text = "...",
    From = "..."
  )]
  out SendGridMessage message)
  {
    message = new SendGridMessage();
  }
}

Nie jest to jednak wszystko. Oprócz tego musimy jeszcze dodać wpis AzureWebJobsSendGridApiKey do Application  Settings. Wartość, którą należy do niego przypisać można odnaleźć na portalu SendGrid.

Jeśli potrzebujesz uzupełnić wiedzę dotyczącą konfigurowania usługi SendGrid zachęcam do zapoznania się z artykułem Wysyłanie maili z Azure Functions – SendGrid.