Condividi tramite


Esercitazione: Eseguire l'integrazione con App per la logica di Azure per inviare messaggi di posta elettronica

Questa esercitazione illustra come integrare l'app del servizio app con i processi aziendali usando App per la logica di Azure. Si crea un'app per la logica che invia messaggi di posta elettronica tramite Gmail dall'app del servizio app di Azure.

Esistono altri modi per inviare messaggi di posta elettronica da un'app Web, ad esempio usando la configurazione SMTP (Simple Mail Transfer Protocol) nel framework del linguaggio. Tuttavia, App per la logica offre un'interfaccia di configurazione semplice per molte integrazioni aziendali senza aggiungere complessità al codice.

È possibile usare i passaggi illustrati in questa esercitazione per implementare diversi scenari comuni di app Web, ad esempio:

  • Invio di un messaggio di posta elettronica di conferma per una transazione.
  • Aggiunta di utenti al gruppo facebook.
  • Connessione a sistemi esterni come SAP e Salesforce.
  • Scambio di messaggi B2B standard.

Prerequisiti

Per completare questa esercitazione, è necessario disporre dei prerequisiti seguenti:


Creare l'app per la logica.

  1. Creare un'app a consumo multi-tenant in App per la logica di Azure seguendo le istruzioni riportate in Creare una risorsa dell'app per la logica a consumo. Quando l'app viene creata, selezionare Vai alla risorsa.

  2. Nella pagina dell'app per la logica selezionare Progettazione app per la logica in Strumenti di sviluppo nel menu di spostamento a sinistra.

Aggiungere il trigger

  1. Selezionare Aggiungi un trigger nell'area di disegno della finestra di progettazione dell'app per la logica.

    Screenshot che mostra l'area di disegno della finestra di progettazione di App per la logica con l'opzione Aggiungi un trigger evidenziato.

  2. Nella schermata Aggiungi trigger in Strumenti predefiniti selezionare Richiesta e nella schermata successiva selezionare Quando viene ricevuta una richiesta HTTP.

    Screenshot che mostra La richiesta e quando viene ricevuta una richiesta HTTP evidenziata.

    Il trigger viene visualizzato nell'area di disegno della finestra di progettazione.

  3. Nella schermata Quando viene ricevuta una richiesta HTTP selezionare Usa payload di esempio per generare lo schema.

    Screenshot che mostra la schermata Quando viene ricevuta una richiesta HTTP con il collegamento genera schema evidenziato.

  4. Incollare il codice seguente nella schermata Immettere o incollare un payload JSON di esempio e quindi selezionare Fine.

    {
        "task": "<description>",
        "due": "<date>",
        "email": "<email-address>"
    }
    

    Azure genera lo schema per i dati della richiesta immessi. In pratica, è possibile acquisire i dati effettivi delle richieste dal codice dell'applicazione e usarli per generare lo schema JSON.

  5. Nella barra degli strumenti superiore della finestra di progettazione dell'app per la logica selezionare Salva.

  6. L'URL HTTP generato viene ora visualizzato nella schermata Quando viene ricevuta una richiesta HTTP . Selezionare l'icona di copia per copiare l'URL da usare in un secondo momento.

    Screenshot che mostra la schermata Quando viene ricevuta una richiesta HTTP con il collegamento genera schema e l'URL HTTP evidenziato.

La definizione della richiesta HTTP è un trigger per qualsiasi operazione che si vuole eseguire in questo flusso di lavoro dell'app per la logica, ad esempio l'invio di messaggi di posta elettronica. Successivamente si richiama questo URL nell'app del servizio app. Per altre informazioni sul trigger di richiesta, vedere Ricevere e rispondere alle chiamate HTTPS in ingresso inviate ai flussi di lavoro in App per la logica di Azure.

Creare il messaggio di posta elettronica

Aggiungere un'azione invia messaggio di posta elettronica e popolare il messaggio di posta elettronica con le tre proprietà della richiesta HTTP immesse in precedenza.

  1. Nell'area di disegno della finestra di progettazione selezionare sotto + il trigger e selezionare Aggiungi un'azione.

  2. Nella schermata Aggiungi un'azione immettere gmail nella casella di ricerca e quindi selezionare Invia messaggio di posta elettronica (V2).

    Suggerimento

    È possibile cercare altri tipi di integrazioni, ad esempio SendGrid, MailChimp, Microsoft 365 e SalesForce. Per altre informazioni, vedere Connettori gestiti per App per la logica di Azure.

  3. Nella schermata Crea connessione selezionare Accedi per autenticare l'accesso all'account Gmail da cui inviare il messaggio di posta elettronica.

    Screenshot che mostra l'azione Gmail in cui accedi al tuo account Gmail.

  4. Dopo aver eseguito l'accesso, selezionare all'interno del campo A nella schermata Invia messaggio di posta elettronica (V2) per visualizzare l'icona del contenuto dinamico. Selezionare la parte superiore del fulmine dell'icona.

  5. Viene visualizzato l'elenco di contenuto dinamico, che mostra le tre proprietà della richiesta HTTP immesse in precedenza. Selezionare posta elettronica dall'elenco.

    Screenshot che mostra l'icona del contenuto dinamico e l'elenco con il messaggio di posta elettronica evidenziato.

  6. Nella schermata Invia messaggio di posta elettronica (V2) l'elemento di posta elettronica viene visualizzato nel campo A . Nell'elenco a discesa in Parametri avanzati selezionare Oggetto e Corpo.

    Screenshot che mostra la selezione di Subject e Body nell'elenco dei parametri.

  7. I campi Oggetto e Corpo vengono visualizzati nella schermata Invia messaggio di posta elettronica (V2). Selezionare nel campo Oggetto per visualizzare l'icona del contenuto dinamico e selezionare l'attività dall'elenco di contenuto dinamico.

  8. Nel campo Oggetto accanto all'attività digitare uno spazio seguito da creato.

  9. Selezionare all'interno del campo Corpo , visualizzare l'elenco di contenuto dinamico e selezionare due.

  10. Nel campo Corpo spostare il cursore prima della scadenza e immettere Questo elemento di lavoro è dovuto a seguito di uno spazio.

    Screenshot che mostra il modulo Send email (V2) completato.

Aggiungere una risposta

Aggiungere una risposta HTTP asincrona al trigger HTTP.

  1. Nell'area di disegno della finestra di progettazione selezionare tra il + trigger della richiesta HTTP e l'azione Gmail e selezionare Aggiungi un ramo parallelo.

    Screenshot che mostra l'opzione + sign e Add a parallel branch evidenziata.

  2. Nella schermata Aggiungi un'azione immettere la risposta nel campo di ricerca e quindi selezionare Risposta.

    Screenshot che mostra la barra di ricerca e l'azione Risposta evidenziata.

    Per impostazione predefinita, l'azione di risposta invia un HTTP 200oggetto , sufficiente per questa esercitazione. Per altre informazioni, vedere Ricevere e rispondere alle chiamate HTTPS in ingresso inviate ai flussi di lavoro in App per la logica di Azure.

  3. Selezionare Salva sulla barra degli strumenti della finestra di progettazione dell'app per la logica.

Aggiungere il codice della richiesta HTTP all'app del servizio app

È consigliabile evitare di inserire informazioni riservate come l'URL del trigger di richiesta direttamente nel codice dell'app del servizio app. È invece possibile fare riferimento all'URL come variabile di ambiente dalle impostazioni dell'app del servizio app. Il comando seguente crea una variabile di ambiente denominata LOGIC_APP_URL per l'URL HTTP dell'app per la logica.

  1. In Azure Cloud Shell eseguire il comando seguente dell'interfaccia della riga di comando di Azure per creare l'impostazione dell'app. Sostituire <app-name> e <resource-group-name> con i nomi dell'app del servizio app e dei gruppi di risorse. Sostituire <http-url> con l'URL HTTP copiato dall'app per la logica.

    az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings LOGIC_APP_URL="<http-url>"
    
  2. Nel codice creare un post HTTP standard per l'URL dell'app per la logica usando un linguaggio client HTTP disponibile per il framework di linguaggio, con la configurazione seguente:

    • Assicurarsi che la richiesta contenga l'intestazione Content-Type: application/json.

    • Usare lo stesso formato JSON fornito all'app per la logica nel corpo della richiesta:

      {
          "task": "<description>",
          "due": "<date>",
          "email": "<email-address>"
      }
      
    • Per ottimizzare le prestazioni, inviare la richiesta in modo asincrono, se possibile.

    • Per istruzioni di registrazione, vedere la documentazione relativa al framework preferito.

Esempi di codice di richiesta/risposta di esempio

Selezionare il linguaggio/framework preferito per visualizzare una richiesta e una risposta di esempio. Alcuni esempi richiedono l'uso o l'installazione di pacchetti di codice.

In ASP.NET Core è possibile inviare la richiesta HTTP POST con la classe System.Net.Http.HttpClient. L'esempio di codice seguente richiede l'uso di System.Net.Http e System.Text.Json. Richiede HttpResponseMessage la configurazione di inserimento delle dipendenze per accedere alle impostazioni dell'app. Per altre informazioni, vedere Accedere alle variabili di ambiente.

// requires using System.Net.Http;
var client = new HttpClient();
// requires using System.Text.Json;
var jsonData = JsonSerializer.Serialize(new
{
    email = "someone@example.com",
    due = "4/1/2025",
    task = "My new task!"
});

HttpResponseMessage result = await client.PostAsync(
    // Requires DI configuration to access app settings
    _configuration["LOGIC_APP_URL"],
    new StringContent(jsonData, Encoding.UTF8, "application/json"));
    
var statusCode = result.StatusCode.ToString();

Nota

Questo codice dimostrativo viene scritto per semplicità. In pratica, non si crea un'istanza di un HttpClient oggetto per ogni richiesta. Seguire le indicazioni fornite in Usare IHttpClientFactory per implementare richieste HTTP resilienti.

Suggerimento

Se si usa l'app di esempio dell'esercitazione: Creare un'app core e database SQL di ASP.NET nel servizio app di Azure, è possibile usare questo codice per inviare una conferma tramite posta elettronica nell'azione Crea dopo aver aggiunto un Todo elemento.