Associazioni di SendGrid di Funzioni di AzureAzure Functions SendGrid bindings

Questo articolo illustra come inviare messaggi di posta elettronica tramite le associazioni di SendGrid in Funzioni di Azure.This article explains how to send email by using SendGrid bindings in Azure Functions. Funzioni di Azure supporta un'associazione di output per SendGrid.Azure Functions supports an output binding for SendGrid.

Informazioni di riferimento per gli sviluppatori delle Funzioni di Azure.This is reference information for Azure Functions developers. Se non si ha familiarità con le Funzioni di Azure, iniziare con le seguenti risorse:If you're new to Azure Functions, start with the following resources:

EsempioExample

Vedere l'esempio specifico per ciascun linguaggio:See the language-specific example:

Esempio in C#C# example

L'esempio seguente mostra una funzione in C# precompilato che usa un trigger della coda del bus di servizio e un'associazione di output di SendGrid.The following example shows a precompiled C# function that uses a Service Bus queue trigger and a SendGrid output binding.

[FunctionName("SendEmail")]
public static void Run(
    [ServiceBusTrigger("myqueue", AccessRights.Manage, Connection = "ServiceBusConnection")] OutgoingEmail email,
    [SendGrid(ApiKey = "CustomSendGridKeyAppSettingName")] out SendGridMessage message)
{
    message = new SendGridMessage();
    message.AddTo(email.To);
    message.AddContent("text/html", email.Body);
    message.SetFrom(new EmailAddress(email.From));
    message.SetSubject(email.Subject);
}

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

È possibile omettere l'impostazione della proprietà ApiKey dell'attributo se si dispone della chiave API in un'impostazione applicazione denominata "AzureWebJobsSendGridApiKey".You can omit setting the attribute's ApiKey property if you have your API key in an app setting named "AzureWebJobsSendGridApiKey".

Esempio di script C#C# script example

L'esempio seguente mostra un'associazione di output di SendGrid in un file function.json e una funzione script C# che usa l'associazione.The following example shows a SendGrid output binding in a function.json file and a C# script function that uses the binding.

Ecco i dati di associazione nel file function.json:Here's the binding data in the function.json file:

{
    "bindings": [
        {
            "name": "message",
            "type": "sendGrid",
            "direction": "out",
            "apiKey" : "MySendGridKey",
            "to": "{ToEmail}",
            "from": "{FromEmail}",
            "subject": "SendGrid output bindings"
        }
    ]
}

Queste proprietà sono descritte nella sezione configuration.The configuration section explains these properties.

Ecco il codice script C#:Here's the C# script code:

#r "SendGrid"
using System;
using SendGrid.Helpers.Mail;

public static void Run(TraceWriter log, string input, out Mail message)
{
     message = new Mail
    {        
        Subject = "Azure news"          
    };

    var personalization = new Personalization();
    personalization.AddTo(new Email("recipient@contoso.com"));   

    Content content = new Content
    {
        Type = "text/plain",
        Value = input
    };
    message.AddContent(content);
    message.AddPersonalization(personalization);
}

Esempio JavaScriptJavaScript example

L'esempio seguente mostra un'associazione di output di SendGrid in un file function.json e una funzione JavaScript che usa l'associazione.The following example shows a SendGrid output binding in a function.json file and a JavaScript function that uses the binding.

Ecco i dati di associazione nel file function.json:Here's the binding data in the function.json file:

{
    "bindings": [
        {
            "name": "$return",
            "type": "sendGrid",
            "direction": "out",
            "apiKey" : "MySendGridKey",
            "to": "{ToEmail}",
            "from": "{FromEmail}",
            "subject": "SendGrid output bindings"
        }
    ]
}

Queste proprietà sono descritte nella sezione configuration.The configuration section explains these properties.

Ecco il codice JavaScript:Here's the JavaScript code:

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

    context.done(null, message);
};

AttributiAttributes

Per funzioni in C# precompilato usare l'attributo SendGrid, definito nel pacchetto NuGet Microsoft.Azure.WebJobs.Extensions.SendGrid.For precompiled C# functions, use the SendGrid attribute, which is defined in NuGet package Microsoft.Azure.WebJobs.Extensions.SendGrid.

Per informazioni sulle proprietà degli attributi che è possibile configurare, vedere la sezione Configurazione.For information about attribute properties that you can configure, see Configuration. Di seguito è riportato un esempio dell'attributo SendGrid in una firma del metodo:Here's a SendGrid attribute example in a method signature:

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

Per un esempio completo, vedere Esempio in C# precompilato.For a complete example, see Precompiled C# example.

ConfigurazioneConfiguration

Nella tabella seguente sono illustrate le proprietà di configurazione dell'associazione impostate nel file function.json e nell'attributo SendGrid.The following table explains the binding configuration properties that you set in the function.json file and the SendGrid attribute.

Proprietà di function.jsonfunction.json property Proprietà dell'attributoAttribute property DescrizioneDescription
typetype Obbligatoria. Deve essere impostata su sendGrid.Required - must be set to sendGrid.
directiondirection Obbligatoria. Deve essere impostata su out.Required - must be set to out.
nomename Obbligatoria. Nome della variabile usato nel codice della funzione per la richiesta o il corpo della richiesta.Required - the variable name used in function code for the request or request body. Questo valore è $return quando viene restituito un solo valore.This value is $return when there is only one return value.
apiKeyapiKey ApiKeyApiKey Il nome di un'impostazione dell'app che contiene la chiave API.The name of an app setting that contains your API key. Se non viene impostato, il nome dell'impostazione dell'app predefinita è "AzureWebJobsSendGridApiKey".If not set, the default app setting name is "AzureWebJobsSendGridApiKey".
toto ToTo Indirizzo e-mail del destinatario.the recipient's email address.
fromfrom FromFrom Indirizzo e-mail del mittente.the sender's email address.
subjectsubject OggettoSubject Oggetto del messaggio di posta elettronica.the subject of the email.
texttext TextText Contenuto del messaggio di posta elettronica.the email content.

Quando si sviluppa in locale, le impostazioni dell'app vengono inserite nel file local.settings.json.When you're developing locally, app settings go into the local.settings.json file.

Passaggi successiviNext steps