Liaisons SendGrid dans Azure FunctionsAzure Functions SendGrid bindings

Cet article explique comment envoyer des e-mails avec des liaisons SendGrid dans Azure Functions.This article explains how to send email by using SendGrid bindings in Azure Functions. Azure Functions prend en charge une liaison de sortie pour SendGrid.Azure Functions supports an output binding for SendGrid.

Il s’agit des informations de référence pour les développeurs Azure Functions.This is reference information for Azure Functions developers. Si vous ne connaissez pas bien Azure Functions, commencez par consulter les ressources suivantes :If you're new to Azure Functions, start with the following resources:

Packages - Functions 1.xPackages - Functions 1.x

Les liaisons SendGrid sont fournies dans le package NuGet Microsoft.Azure.WebJobs.Extensions.SendGrid, version 2.x.The SendGrid bindings are provided in the Microsoft.Azure.WebJobs.Extensions.SendGrid NuGet package, version 2.x. Le code source du package se trouve dans le référentiel GitHub azure-webjobs-sdk-extensions.Source code for the package is in the azure-webjobs-sdk-extensions GitHub repository.

Le tableau suivant indique comment ajouter la prise en charge de cette liaison dans chaque environnement de développement.The following table tells how to add support for this binding in each development environment.

Environnement de développementDevelopment environment Pour ajouter la prise en charge dansTo add support in
Functions 1.xFunctions 1.x
Développement local - Bibliothèque de classes C#Local development - C# class library Installer le package.Install the package
Développement local - Script C#, JavaScript, F#Local development - C# script, JavaScript, F# AutomatiqueAutomatic
Développement sur le portailPortal development AutomatiqueAutomatic

Packages – Functions 2.x et versions ultérieuresPackages - Functions 2.x and higher

Les liaisons SendGrid sont fournies dans le package NuGet Microsoft.Azure.WebJobs.Extensions.SendGrid, version 3.x.The SendGrid bindings are provided in the Microsoft.Azure.WebJobs.Extensions.SendGrid NuGet package, version 3.x. Le code source du package se trouve dans le référentiel GitHub azure-webjobs-sdk-extensions.Source code for the package is in the azure-webjobs-sdk-extensions GitHub repository.

Le tableau suivant indique comment ajouter la prise en charge de cette liaison dans chaque environnement de développement.The following table tells how to add support for this binding in each development environment.

Environnement de développementDevelopment environment Pour ajouter la prise en chargeTo add support
Développement local - Bibliothèque de classes C#Local development - C# class library Installer le package.Install the package
Développement local - Script C#, JavaScript, F#, Java et PythonLocal development - C# script, JavaScript, F#, Java and Python Enregistrer l’extensionRegister the extension
Développement sur le portailPortal development Installer lors de l’ajout d’une liaison de sortieInstall when adding output binding

Pour apprendre comment mettre à jour les extensions de liaison existantes dans le portail sans avoir à republier votre projet d'application de fonction, voir Mettre à jour vos extensions.To learn how to update existing binding extensions in the portal without having to republish your function app project, see Update your extensions.

ExempleExample

L’exemple suivant montre une fonction C# qui utilise un déclencheur de file d’attente Service Bus et une liaison de sortie SendGrid.The following example shows a C# function that uses a Service Bus queue trigger and a SendGrid output binding.

SynchroneSynchronous

[FunctionName("SendEmail")]
public static void Run(
    [ServiceBusTrigger("myqueue", Connection = "ServiceBusConnection")] Message email,
    [SendGrid(ApiKey = "CustomSendGridKeyAppSettingName")] out SendGridMessage message)
{
var emailObject = JsonConvert.DeserializeObject<OutgoingEmail>(Encoding.UTF8.GetString(email.Body));

message = new SendGridMessage();
message.AddTo(emailObject.To);
message.AddContent("text/html", emailObject.Body);
message.SetFrom(new EmailAddress(emailObject.From));
message.SetSubject(emailObject.Subject);
}

public class OutgoingEmail
{
    public string To { get; set; }
    public string From { get; set; }
    public string Subject { get; set; }
    public string Body { get; set; }
}

AsynchroneAsynchronous

[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; }
}

Vous pouvez omettre la définition de la propriété ApiKey de l’attribut si votre clé API se trouve dans un paramètre d’application nommé « AzureWebJobsSendGridApiKey ».You can omit setting the attribute's ApiKey property if you have your API key in an app setting named "AzureWebJobsSendGridApiKey".

Attributs et annotationsAttributes and annotations

Dans les bibliothèques de classes C#, utilisez l’attribut SendGrid.In C# class libraries, use the SendGrid attribute.

Pour plus d’informations sur les propriétés d’attribut que vous pouvez configurer, consultez Configuration.For information about attribute properties that you can configure, see Configuration. Voici un exemple d’attribut SendGrid dans une signature de méthode :Here's a SendGrid attribute example in a method signature:

[FunctionName("SendEmail")]
public static void Run(
    [ServiceBusTrigger("myqueue", Connection = "ServiceBusConnection")] OutgoingEmail email,
    [SendGrid(ApiKey = "CustomSendGridKeyAppSettingName")] out SendGridMessage message)
{
    ...
}

Vous trouverez un exemple complet sur la page Exemple C#.For a complete example, see C# example.

ConfigurationConfiguration

Le tableau suivant liste les propriétés de configuration de liaison qui sont disponibles dans le fichier function.json et dans l’attribut/annotation SendGrid :The following table lists the binding configuration properties available in the function.json file and the SendGrid attribute/annotation.

Propriété function.jsonfunction.json property Propriété d’attribut/annotationAttribute/annotation property DescriptionDescription FacultatifOptional
typetype n/an/a Cette propriété doit être définie sur sendGrid.Must be set to sendGrid. NonNo
directiondirection n/an/a Cette propriété doit être définie sur out.Must be set to out. NonNo
namename n/an/a Nom de variable utilisé dans le code de la fonction pour la requête ou le corps de la requête.The variable name used in function code for the request or request body. Cette valeur est $return lorsqu’il n’existe qu’une valeur de retour.This value is $return when there is only one return value. NonNo
apiKeyapiKey ApiKeyApiKey Nom d’un paramètre d’application qui contient votre clé API.The name of an app setting that contains your API key. En l’absence de définition, le nom du paramètre d’application par défaut est AzureWebJobsSendGridApiKey.If not set, the default app setting name is AzureWebJobsSendGridApiKey. NonNo
toto ÀTo Adresse e-mail du destinataire.The recipient's email address. OuiYes
defrom À partirFrom Adresse e-mail de l’expéditeur.The sender's email address. OuiYes
subjectsubject ObjetSubject Objet de l’e-mail.The subject of the email. OuiYes
texttext TexteText Contenu de l’e-mail.The email content. OuiYes

Les propriétés facultatives peuvent avoir des valeurs par défaut qui sont définies dans la liaison, et qui sont soit ajoutées, soit remplacées programmatiquement.Optional properties may have default values defined in the binding and either added or overridden programmatically.

Quand vous développez localement, les paramètres d’application vont dans le fichier local.settings.json.When you're developing locally, app settings go into the local.settings.json file.

Paramètres host.jsonhost.json settings

Cette section décrit les paramètres de configuration globaux disponibles pour cette liaison dans les versions 2.x et ultérieures.This section describes the global configuration settings available for this binding in versions 2.x and higher. L’exemple de fichier host.json ci-dessous contient seulement les paramètres des versions 2.x et ultérieures pour cette liaison.The example host.json file below contains only the version 2.x+ settings for this binding. Pour plus d’informations sur les paramètres de configuration globaux dans les versions 2.x et ultérieures, consultez Informations de référence sur le fichier host.json pour Azure Functions.For more information about global configuration settings in versions 2.x and beyond, see host.json reference for Azure Functions.

Notes

Pour obtenir une référence de host.json dans Functions 1.x, consultez Informations de référence sur le fichier host.json pour Azure Functions 1.x.For a reference of host.json in Functions 1.x, see host.json reference for Azure Functions 1.x.

{
    "version": "2.0",
    "extensions": {
        "sendGrid": {
            "from": "Azure Functions <samples@functions.com>"
        }
    }
}
PropriétéProperty DefaultDefault DescriptionDescription
defrom n/an/a Adresse e-mail de l’expéditeur dans toutes les fonctions.The sender's email address across all functions.

Étapes suivantesNext steps