Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Cet article explique comment envoyer des e-mails à l’aide de liaisons SendGrid dans Azure Functions. Azure Functions prend en charge une liaison de sortie pour SendGrid.
Il s’agit des informations de référence pour les développeurs Azure Functions. Si vous ne connaissez pas bien Azure Functions, commencez par consulter les ressources suivantes :
Références pour les développeurs C# :
Installer l’extension
Le package NuGet de l’extension que vous installez dépend du mode C# que vous utilisez dans votre application de fonction :
Les fonctions s’exécutent dans un processus de travail C# isolé. Pour en savoir plus, consultez Guide pour l’exécution d’Azure Functions C# dans un processus Worker isolé.
La fonctionnalité de l’extension varie en fonction de la version de l’extension :
Ajoutez l’extension à votre projet en installant le package NuGet, version 3.x.
Installer l’offre groupée
Pour pouvoir utiliser cette extension de liaison dans votre application, assurez-vous que le fichier host.json à la racine de votre projet contient cette extensionBundle référence :
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Dans cet exemple, la version valeur de [4.0.0, 5.0.0) l’hôte Functions indique à l’hôte Functions d’utiliser une version groupée qui est au moins 4.0.0 mais inférieure à , qui inclut toutes les versions potentielles 5.0.0de 4.x. Cette notation gère efficacement votre application sur la dernière version mineure disponible de l’offre groupée d’extensions v4.x.
Si possible, vous devez utiliser la dernière version principale de l’offre groupée d’extensions et autoriser le runtime à gérer automatiquement la dernière version mineure. Vous pouvez afficher le contenu de la dernière offre groupée sur la page de publication des offres groupées d’extensions. Pour plus d’informations, consultez les bundles d’extensions Azure Functions.
Example
Vous pouvez créer une fonction C# à l’aide de l’un des modes C# suivants :
- Modèle worker isolé : fonction C# compilée exécutée dans un processus worker isolé du runtime. Un processus de travail isolé est nécessaire pour prendre en charge les fonctions C# s’exécutant sur la prise en charge à long terme (LTS) et les versions non LTS pour .NET et .NET Framework.
- Modèle in-process : fonction C# compilée qui s’exécute dans le même processus que le runtime Azure Functions.
- Script C# : utilisé principalement lorsque vous créez des fonctions C# dans le portail Azure.
Important
La prise en charge du modèle in-process prendra fin le 10 novembre 2026. Pour continuer à bénéficier d’une prise en charge complète, nous vous recommandons vivement de migrer vos applications vers le modèle worker isolé.
Nous n’avons actuellement aucun exemple d’utilisation de la liaison SendGrid dans une application de fonction s’exécutant dans un processus Worker isolé.
L’exemple suivant montre une liaison de sortie SendGrid dans un fichier function.json et une fonction JavaScript qui utilise la liaison.
Voici les données de liaison dans le fichier function.json :
{
"bindings": [
{
"name": "$return",
"type": "sendGrid",
"direction": "out",
"apiKey" : "MySendGridKey",
"to": "{ToEmail}",
"from": "{FromEmail}",
"subject": "SendGrid output bindings"
}
]
}
La section de configuration décrit ces propriétés.
Voici le code JavaScript :
module.exports = function (context, input) {
var message = {
"personalizations": [ { "to": [ { "email": "sample@sample.com" } ] } ],
from: { email: "sender@contoso.com" },
subject: "Azure news",
content: [{
type: 'text/plain',
value: input
}]
};
return message;
};
Aucun exemple PowerShell complet n'est actuellement disponible pour les liaisons SendGrid.
L’exemple suivant montre une fonction déclenchée par HTTP qui envoie un e-mail à l’aide de la liaison SendGrid. Vous pouvez fournir des valeurs par défaut dans la configuration de la liaison. Par exemple, l’adresse e-mail à partir de l’adresse e-mail est configurée dans function.json.
{
"scriptFile": "__init__.py",
"bindings": [
{
"type": "httpTrigger",
"authLevel": "function",
"direction": "in",
"name": "req",
"methods": ["get", "post"]
},
{
"type": "http",
"direction": "out",
"name": "$return"
},
{
"type": "sendGrid",
"name": "sendGridMessage",
"direction": "out",
"apiKey": "SendGrid_API_Key",
"from": "sender@contoso.com"
}
]
}
La fonction suivante montre comment vous pouvez fournir des valeurs personnalisées pour des propriétés facultatives.
import logging
import json
import azure.functions as func
def main(req: func.HttpRequest, sendGridMessage: func.Out[str]) -> func.HttpResponse:
value = "Sent from Azure Functions"
message = {
"personalizations": [ {
"to": [{
"email": "user@contoso.com"
}]}],
"subject": "Azure Functions email with SendGrid",
"content": [{
"type": "text/plain",
"value": value }]}
sendGridMessage.set(json.dumps(message))
return func.HttpResponse(f"Sent")
L’exemple suivant utilise l’annotation @SendGridOutput de la bibliothèque du runtime des fonctions Java pour envoyer un e-mail à l’aide de la liaison de sortie SendGrid.
package com.function;
import java.util.*;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;
public class HttpTriggerSendGrid {
@FunctionName("HttpTriggerSendGrid")
public HttpResponseMessage run(
@HttpTrigger(
name = "req",
methods = { HttpMethod.GET, HttpMethod.POST },
authLevel = AuthorizationLevel.FUNCTION)
HttpRequestMessage<Optional<String>> request,
@SendGridOutput(
name = "message",
dataType = "String",
apiKey = "SendGrid_API_Key",
to = "user@contoso.com",
from = "sender@contoso.com",
subject = "Azure Functions email with SendGrid",
text = "Sent from Azure Functions")
OutputBinding<String> message,
final ExecutionContext context) {
final String toAddress = "user@contoso.com";
final String value = "Sent from Azure Functions";
StringBuilder builder = new StringBuilder()
.append("{")
.append("\"personalizations\": [{ \"to\": [{ \"email\": \"%s\"}]}],")
.append("\"content\": [{\"type\": \"text/plain\", \"value\": \"%s\"}]")
.append("}");
final String body = String.format(builder.toString(), toAddress, value);
message.setValue(body);
return request.createResponseBuilder(HttpStatus.OK).body("Sent").build();
}
}
Attributes
Les bibliothèques C# de processus in-process et isolé utilisent des attributs pour définir la liaison de sortie. Le script C# utilise à la place un fichier config function.json.
Dans les applications de fonction de processus Worker isolé, SendGridOutputAttribute prend en charge les paramètres suivants :
| Attribut/propriété d’annotation | Description |
|---|---|
| ApiKey | Nom d’un paramètre d’application qui contient votre clé API. S’il n’est pas défini, le nom par défaut du paramètre d’application est AzureWebJobsSendGridApiKey. |
| To | (Facultatif) Adresse e-mail du destinataire. |
| From | (Facultatif) Adresse e-mail de l’expéditeur. |
| Subject | (Facultatif) Objet de l’e-mail. |
| Text | (Facultatif) Contenu de l’e-mail. |
Annotations
L’annotation SendGridOutput vous permet de configurer de manière déclarative la liaison SendGrid en fournissant les valeurs de configuration suivantes.
Configuration
Le tableau suivant répertorie les propriétés de configuration de liaison disponibles dans le fichier function.json et l’attribut SendGrid /annotation.
| propriétéfunction.json | Description |
|---|---|
| type | Cette propriété doit être définie sur sendGrid. |
| direction | Cette propriété doit être définie sur out. |
| name | Nom de variable utilisé dans le code de la fonction pour la requête ou le corps de la requête. Cette valeur est $return lorsqu’il n’y a qu’une seule valeur de retour. |
| apiKey | Nom d’un paramètre d’application qui contient votre clé API. S’il n’est pas défini, le nom du paramètre d’application par défaut est AzureWebJobsSendGridApiKey. |
| to | (Facultatif) Adresse e-mail du destinataire. |
| from | (Facultatif) Adresse e-mail de l’expéditeur. |
| subject | (Facultatif) Objet de l’e-mail. |
| text | (Facultatif) Contenu de l’e-mail. |
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.
Lorsque vous développez localement, ajoutez les paramètres de votre application dans le fichierlocal.settings.json de la Values collection.
Paramètres host.json
Cette section décrit les paramètres de configuration disponibles pour cette liaison dans la version 2.x et les versions ultérieures. Les paramètres dans le fichier host.json s’appliquent à toutes les fonctions dans une instance de l’application de fonction. Pour plus d’informations sur les paramètres de configuration des applications de fonction, consultez host.json référence pour Azure Functions.
Note
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.
{
"version": "2.0",
"extensions": {
"sendGrid": {
"from": "Azure Functions <samples@functions.com>"
}
}
}
| Property | Default | Description |
|---|---|---|
| from | n/a | Adresse e-mail de l’expéditeur dans toutes les fonctions. |