Guida introduttiva: Inviare un messaggio di posta elettronica a più destinatari

In questa guida introduttiva si apprenderà come inviare messaggi di posta elettronica a più destinatari usando gli SDK di posta elettronica.

Per iniziare a usare Servizi di comunicazione di Azure, usare la libreria client di posta elettronica .NET di Servizi di comunicazione per inviare messaggi di posta elettronica.

Suggerimento

Iniziare subito l'esperienza di invio di messaggi di posta elettronica con Servizi di comunicazione di Azure ignorando direttamente il codice di esempio Invio di posta elettronica di base e Invio di posta elettronica avanzata su GitHub.

Informazioni sul modello a oggetti di posta elettronica

Le classi e le interfacce seguenti gestiscono alcune delle principali funzionalità della libreria client di posta elettronica Servizi di comunicazione di Azure per C#.

Nome Descrizione
EmailAddress Questa classe contiene un indirizzo di posta elettronica e un'opzione per un nome visualizzato.
EmailAttachment Questa classe crea un allegato di posta elettronica accettando un ID univoco, una stringa MIME di tipo allegato di posta elettronica e dati binari per il contenuto.
EmailClient Questa classe è necessaria per tutte le funzionalità di posta elettronica. È possibile crearne un'istanza con il stringa di connessione e usarla per inviare messaggi di posta elettronica.
EmailClientOptions Questa classe può essere aggiunta all'istanza di EmailClient per specificare una versione dell'API specifica.
EmailContent Questa classe contiene l'oggetto e il corpo del messaggio di posta elettronica. È necessario specificare almeno un contenuto PlainText o Html
EmailCustomHeader Questa classe consente l'aggiunta di un nome e una coppia di valori per un'intestazione personalizzata. L'importanza della posta elettronica può essere specificata anche tramite queste intestazioni usando il nome dell'intestazione 'x-priority' o 'x-msmail-priority'
EmailMessage Questa classe combina il mittente, il contenuto e i destinatari. È possibile aggiungere anche intestazioni, allegati e indirizzi di posta elettronica di risposta personalizzati.
EmailRecipients Questa classe contiene elenchi di oggetti EmailAddress per i destinatari del messaggio di posta elettronica, inclusi gli elenchi facoltativi per i destinatari CC &BCC.
EmailSendOperation Questa classe rappresenta l'operazione di invio di posta elettronica asincrona e viene restituita dalla chiamata API di invio tramite posta elettronica.
EmailSendResult Questa classe contiene i risultati dell'operazione di invio tramite posta elettronica. Ha un ID operazione, lo stato dell'operazione e l'oggetto errore (se applicabile).

EmailSendResult restituisce lo stato seguente nell'operazione di posta elettronica eseguita.

Stato Descrizione
NotStarted Questo stato non viene inviato al momento dal servizio.
In esecuzione L'operazione di invio di posta elettronica è attualmente in corso ed è in corso l'elaborazione.
Riuscito L'operazione di invio tramite posta elettronica è stata completata senza errori e il messaggio di posta elettronica è in uscita per il recapito. Qualsiasi stato dettagliato sul recapito della posta elettronica oltre questa fase può essere ottenuto tramite Monitoraggio di Azure o tramite Griglia di eventi di Azure. Informazioni su come sottoscrivere eventi di posta elettronica
Non riuscito L'operazione di invio della posta elettronica non è riuscita e ha rilevato un errore. Il messaggio di posta elettronica non è stato inviato. Il risultato contiene un oggetto errore con altri dettagli sul motivo dell'errore.

Prerequisiti

Il completamento di questa guida introduttiva comporta un costo ridotto di pochi centesimi di USD o inferiore nell'account Azure.

Nota

È anche possibile inviare un messaggio di posta elettronica dal proprio dominio verificato. Aggiungere domini verificati personalizzati al servizio di comunicazione tramite posta elettronica.

Controllo dei prerequisiti

  • In una finestra del terminale o di comando eseguire il comando dotnet per verificare se la libreria client .NET è installata.
  • Per visualizzare i sottodomini associati alla risorsa Servizi di comunicazione di posta elettronica, accedere al portale di Azure, individuare la risorsa Servizi di comunicazione di posta elettronica e aprire la scheda Provision domains (Effettuare il provisioning dei domini) dal riquadro di spostamento a sinistra.

Creare una nuova applicazione C#

In una finestra di una console, ad esempio cmd, PowerShell o Bash, usare il comando dotnet new per creare una nuova app console con il nome EmailQuickstart. Questo comando crea un semplice progetto C# "Hello World" con un singolo file di origine: Program.cs.

dotnet new console -o EmailQuickstart

Passare alla cartella dell'app appena creata e usare il comando dotnet build per compilare l'applicazione.

cd EmailQuickstart
dotnet build

Installare il pacchetto

Nella directory dell'applicazione installare la libreria client di posta elettronica di Servizi di comunicazione di Azure per il pacchetto .NET usando il dotnet add package comando .

dotnet add package Azure.Communication.Email

Creazione del client di posta elettronica con autenticazione

Aprire Program.cs e sostituire il codice esistente con il codice seguente per aggiungere using direttive per includere lo spazio dei nomi e un punto di partenza per l'esecuzione Azure.Communication.Email del programma.


using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

using Azure;
using Azure.Communication.Email;

namespace SendEmail
{
  internal class Program
  {
    static async Task Main(string[] args)
    {

    }
  }
}

Sono disponibili alcune opzioni diverse per l'autenticazione di un client di posta elettronica:

Aprire Program.cs in un editor di testo e sostituire il corpo del metodo Main con il codice per inizializzare un oggetto EmailClient con la stringa di connessione. Il codice seguente recupera il stringa di connessione per la risorsa da una variabile di ambiente denominata COMMUNICATION_SERVICES_CONNECTION_STRING. Informazioni su come gestire le stringa di connessione della risorsa.

// This code demonstrates how to fetch your connection string
// from an environment variable.
string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
EmailClient emailClient = new EmailClient(connectionString);

Inviare un messaggio di posta elettronica a più destinatari

È possibile definire più destinatari aggiungendo altri indirizzi EmailAddresses all'oggetto EmailRecipients. Questi indirizzi possono essere aggiunti come Todestinatari , CCo BCC . Facoltativamente, è anche possibile aggiungere un ReplyTo indirizzo di posta elettronica per ricevere eventuali risposte.

// Create the email content
var emailContent = new EmailContent("Welcome to Azure Communication Service Email APIs.")
{
    PlainText = "This email message is sent from Azure Communication Service Email.",
    Html = "<html><body><h1>Quick send email test</h1><br/><h4>This email message is sent from Azure Communication Service Email.</h4><p>This mail was sent using .NET SDK!!</p></body></html>"
};

// Create the To list
var toRecipients = new List<EmailAddress>
{
  new EmailAddress("<emailalias1@emaildomain.com>"),
  new EmailAddress("<emailalias2@emaildomain.com>"),
};

// Create the CC list
var ccRecipients = new List<EmailAddress>
{
  new EmailAddress("<ccemailalias@emaildomain.com>"),
};

// Create the BCC list
var bccRecipients = new List<EmailAddress>
{
  new EmailAddress("<bccemailalias@emaildomain.com>"),
};

EmailRecipients emailRecipients = new EmailRecipients(toRecipients, ccRecipients, bccRecipients);

// Create the EmailMessage
var emailMessage = new EmailMessage(
    senderAddress: "donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net" // The email address of the domain registered with the Communication Services resource
    emailRecipients,
    emailContent);

// Add optional ReplyTo address which is where any replies to the email will go to.
emailMessage.ReplyTo.Add(new EmailAddress("<replytoemailalias@emaildomain.com>"));

try
{
    EmailSendOperation emailSendOperation = emailClient.Send(WaitUntil.Completed, emailMessage);
    Console.WriteLine($"Email Sent. Status = {emailSendOperation.Value.Status}");

    /// Get the OperationId so that it can be used for tracking the message for troubleshooting
    string operationId = emailSendOperation.Id;
    Console.WriteLine($"Email operation id = {operationId}");
}
catch (RequestFailedException ex)
{
    /// OperationID is contained in the exception message and can be used for troubleshooting purposes
    Console.WriteLine($"Email send operation failed with error code: {ex.ErrorCode}, message: {ex.Message}");
}

Eseguire l'applicazione dalla directory dell'applicazione con il comando dotnet run.

dotnet run

Codice di esempio

È possibile scaricare l'app di esempio che illustra questa azione da GitHub

Per iniziare a usare Servizi di comunicazione di Azure, usare la libreria client di posta elettronica JS di Servizi di comunicazione per inviare messaggi di posta elettronica.

Suggerimento

Iniziare subito l'esperienza di invio di messaggi di posta elettronica con Servizi di comunicazione di Azure ignorando direttamente il codice di esempio Invio di posta elettronica di base e Invio di posta elettronica avanzata su GitHub.

Informazioni sul modello a oggetti di posta elettronica

Le classi e le interfacce seguenti gestiscono alcune delle principali funzionalità della libreria client di posta elettronica di Servizi di comunicazione di Azure per JavaScript.

Nome Descrizione
EmailAddress Questa classe contiene un indirizzo di posta elettronica e un'opzione per un nome visualizzato.
EmailAttachment Questa classe crea un allegato di posta elettronica accettando un ID univoco, una stringa MIME di tipo allegato di posta elettronica e dati binari per il contenuto.
EmailClient Questa classe è necessaria per tutte le funzionalità di posta elettronica. È possibile crearne un'istanza con il stringa di connessione e usarla per inviare messaggi di posta elettronica.
EmailClientOptions Questa classe può essere aggiunta all'istanza di EmailClient per specificare una versione dell'API specifica.
EmailContent Questa classe contiene l'oggetto e il corpo del messaggio di posta elettronica. È necessario specificare almeno uno dei contenuti PlainText o Html.
EmailCustomHeader Questa classe consente l'aggiunta di un nome e una coppia di valori per un'intestazione personalizzata. L'importanza della posta elettronica può essere specificata anche tramite queste intestazioni usando il nome dell'intestazione 'x-priority' o 'x-msmail-priority'.
EmailMessage Questa classe combina il mittente, il contenuto e i destinatari. È possibile aggiungere anche intestazioni, allegati e indirizzi di posta elettronica di risposta personalizzati.
EmailRecipients Questa classe contiene elenchi di oggetti EmailAddress per i destinatari del messaggio di posta elettronica, inclusi gli elenchi facoltativi per i destinatari CC &BCC.
EmailSendResult Questa classe contiene i risultati dell'operazione di invio tramite posta elettronica. Ha un ID operazione, lo stato dell'operazione e l'oggetto errore (se applicabile).
EmailSendStatus Questa classe rappresenta il set di stati di un'operazione di invio di posta elettronica.

EmailSendResult restituisce lo stato seguente nell'operazione di posta elettronica eseguita.

Nome stato Descrizione
isStarted Restituisce true se l'operazione di invio di posta elettronica è in corso ed è in corso l'elaborazione.
Iscompleted Restituisce true se l'operazione di invio tramite posta elettronica è stata completata senza errori e il messaggio di posta elettronica è in uscita per il recapito. Qualsiasi stato dettagliato sul recapito della posta elettronica oltre questa fase può essere ottenuto tramite Monitoraggio di Azure o tramite Griglia di eventi di Azure. Informazioni su come sottoscrivere eventi di posta elettronica
result Proprietà esistente se l'operazione di invio tramite posta elettronica è stata completata.
Errore Proprietà esistente se l'operazione di invio del messaggio di posta elettronica non è riuscita e ha rilevato un errore. Il messaggio di posta elettronica non è stato inviato. Il risultato contiene un oggetto errore con altri dettagli sul motivo dell'errore.

Prerequisiti

Il completamento di questa guida introduttiva comporta un costo ridotto di pochi centesimi di USD o inferiore nell'account Azure.

Nota

È anche possibile inviare un messaggio di posta elettronica dal proprio dominio verificato. Aggiungere domini verificati personalizzati al servizio di comunicazione tramite posta elettronica.

Controllo dei prerequisiti

  • In un terminale o una finestra di comando eseguire node --version per verificare che Node.js sia installato.
  • Per visualizzare i domini verificati con la risorsa Servizi di comunicazione di posta elettronica, accedere al portale di Azure, individuare la risorsa Servizi di comunicazione di posta elettronica e aprire la scheda Provision domains (Effettuare il provisioning dei domini) nel riquadro di spostamento a sinistra.

Configurare l'ambiente dell'applicazione

Creare una nuova applicazione Node.js

Aprire prima di tutto il terminale o la finestra di comando per creare una nuova directory per l'app e passare a tale directory.

mkdir email-quickstart && cd email-quickstart

Eseguire npm init -y per creare un file package.json con le impostazioni predefinite.

npm init -y

Usare un editor di testo per creare un file denominato send-email.js nella directory radice del progetto. Modificare la proprietà "main" in package.json in "send-email.js". Nella sezione seguente viene illustrato come aggiungere il codice sorgente per questa guida introduttiva al file appena creato.

Installare il pacchetto

Usare il npm install comando per installare la libreria client di posta elettronica di Servizi di comunicazione di Azure per JavaScript.

npm install @azure/communication-email --save

L'opzione --save elenca la libreria come dipendenza nel file package.json.

Creazione del client di posta elettronica con autenticazione

Sono disponibili alcune opzioni diverse per l'autenticazione di un client di posta elettronica:

Importare EmailClient dalla libreria client e crearne un'istanza con il stringa di connessione.

Il codice seguente recupera il stringa di connessione per la risorsa da una variabile di ambiente denominata COMMUNICATION_SERVICES_CONNECTION_STRING usando il pacchetto dotenv. Usare il npm install comando per installare il pacchetto dotenv. Informazioni su come gestire le stringa di connessione della risorsa.

npm install dotenv

Aggiungere il codice seguente a send-email.js:

const { EmailClient } = require("@azure/communication-email");
require("dotenv").config();

// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];
const emailClient = new EmailClient(connectionString);

Per semplicità, questa guida introduttiva usa stringa di connessione, ma negli ambienti di produzione è consigliabile usare le entità servizio.

Inviare un messaggio di posta elettronica a più destinatari

Per inviare un messaggio di posta elettronica a più destinatari, aggiungere un oggetto per ogni tipo di destinatario e un oggetto per ogni destinatario. Questi indirizzi possono essere aggiunti come Todestinatari , CCo BCC . Facoltativamente, aggiungere un indirizzo di posta elettronica alla replyTo proprietà se si desidera ricevere eventuali risposte.

const message = {
  senderAddress: "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>",
  content: {
    subject: "Welcome to Azure Communication Service Email.",
    plainText: "<This email message is sent from Azure Communication Service Email using JS SDK.>"
  },
  recipients: {
    to: [
      {
        address: "customer1@domain.com",
        displayName: "Customer Name 1",
      },
      {
        address: "customer2@domain.com",
        displayName: "Customer Name 2",
      }
    ],
    cc: [
      {
        address: "ccCustomer1@domain.com",
        displayName: " CC Customer 1",
      },
      {
        address: "ccCustomer2@domain.com",
        displayName: "CC Customer 2",
      }
    ],
    bcc: [
      {
        address: "bccCustomer1@domain.com",
        displayName: " BCC Customer 1",
      },
      {
        address: "bccCustomer2@domain.com",
        displayName: "BCC Customer 2",
      }
    ]
  },
  replyTo: [
    {
      address: "replyToCustomer1@domain.com",
      displayName: "ReplyTo Customer 1",
    }
  ]
};

const poller = await emailClient.beginSend(message);
const response = await poller.pollUntilDone();

Codice di esempio

È possibile scaricare l'app di esempio che illustra questa azione da GitHub

Per iniziare a usare Servizi di comunicazione di Azure, usare Java Email SDK di Servizi di comunicazione per inviare messaggi di posta elettronica.

Suggerimento

Iniziare subito l'esperienza di invio di messaggi di posta elettronica con Servizi di comunicazione di Azure ignorando direttamente il codice di esempio Invio di posta elettronica di base e Invio di posta elettronica avanzata su GitHub.

Informazioni sul modello a oggetti di posta elettronica

Le classi e le interfacce seguenti gestiscono alcune delle principali funzionalità di Servizi di comunicazione di Azure Email SDK per Python.

Nome Descrizione
EmailAddress Questa classe contiene un indirizzo di posta elettronica e un'opzione per un nome visualizzato.
EmailAttachment Questa interfaccia crea un allegato di posta elettronica accettando un ID univoco, una stringa di tipo MIME dell'allegato di posta elettronica e una stringa di byte di contenuto.
EmailClient Questa classe è necessaria per tutte le funzionalità di posta elettronica. È possibile crearne un'istanza con il stringa di connessione e usarla per inviare messaggi di posta elettronica.
EmailMessage Questa classe combina il mittente, il contenuto e i destinatari. È possibile aggiungere anche intestazioni, allegati e indirizzi di posta elettronica di risposta personalizzati.
EmailSendResult Questa classe contiene i risultati dell'operazione di invio tramite posta elettronica. Ha un ID operazione, lo stato dell'operazione e l'oggetto errore (se applicabile).
EmailSendStatus Questa classe rappresenta il set di stati di un'operazione di invio di posta elettronica.

EmailSendResult restituisce lo stato seguente nell'operazione di posta elettronica eseguita.

Nome stato Descrizione
NOT_STARTED Questo stato non viene inviato al momento dal servizio.
IN_PROGRESS L'operazione di invio di posta elettronica è attualmente in corso ed è in corso l'elaborazione.
SUCCESSFULLY_COMPLETED L'operazione di invio tramite posta elettronica è stata completata senza errori e il messaggio di posta elettronica è in uscita per il recapito. Qualsiasi stato dettagliato sul recapito della posta elettronica oltre questa fase può essere ottenuto tramite Monitoraggio di Azure o tramite Griglia di eventi di Azure. Informazioni su come sottoscrivere eventi di posta elettronica
FAILED L'operazione di invio della posta elettronica non è riuscita e ha rilevato un errore. Il messaggio di posta elettronica non è stato inviato. Il risultato contiene un oggetto errore con altri dettagli sul motivo dell'errore.

Prerequisiti

Le procedure illustrate in questa guida di avvio rapido comportano l'addebito di qualche centesimo (USD) o meno nell'account Azure.

Nota

È anche possibile inviare un messaggio di posta elettronica dal proprio dominio verificato Aggiungere domini verificati personalizzati al servizio di comunicazione tramite posta elettronica.

Controllo dei prerequisiti

  • In un terminale o in una finestra di comando eseguire mvn -v per verificare che Maven sia installato.
  • Per visualizzare i domini verificati con la risorsa di Servizi di comunicazione di posta elettronica, accedere al portale di Azure. Individuare la risorsa Servizi di comunicazione di posta elettronica e aprire la scheda Provision domains (Effettua il provisioning dei domini ) nel riquadro di spostamento sinistro.

Configurare l'ambiente dell'applicazione

Per configurare un ambiente per l'invio di messaggi di posta elettronica, seguire questa procedura nelle sezioni seguenti.

Creare una nuova applicazione Java

Aprire la finestra del terminale o di comando e passare alla directory in cui creare l'applicazione Java. Eseguire il comando seguente per generare il progetto Java dal modello maven-archetype-quickstart.

mvn archetype:generate -DarchetypeArtifactId="maven-archetype-quickstart" -DarchetypeGroupId="org.apache.maven.archetypes" -DarchetypeVersion="1.4" -DgroupId="com.communication.quickstart" -DartifactId="communication-quickstart"

L'obiettivo generate crea una directory con lo stesso nome del artifactId valore. In questa directory la directory src/main/java contiene il codice sorgente del progetto, la directory src/test/java contiene l'origine di test e il file pom.xml è il modello a oggetti del progetto .

Installare il pacchetto

Aprire il file pom.xml nell'editor di testo. Aggiungere l'elemento di dipendenza seguente al gruppo di dipendenze.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-email</artifactId>
    <version>1.0.0-beta.2</version>
</dependency>

Configurare il framework dell'app

Aprire /src/main/java/com/communication/quickstart/App.java in un editor di testo, aggiungere direttive di importazione e rimuovere l'istruzione System.out.println("Hello world!"); :

package com.communication.quickstart;

import com.azure.communication.email.models.*;
import com.azure.communication.email.*;
import com.azure.core.util.polling.PollResponse;
import com.azure.core.util.polling.SyncPoller;

public class App
{
    public static void main( String[] args )
    {
        // Quickstart code goes here.
    }
}

Creazione del client di posta elettronica con autenticazione

Sono disponibili alcune opzioni diverse per l'autenticazione di un client di posta elettronica:

Per autenticare un client, creare un'istanza EmailClient di con il stringa di connessione. Informazioni su come gestire le stringa di connessione della risorsa. È anche possibile inizializzare il client con qualsiasi client HTTP personalizzato che implementa l'interfaccia com.azure.core.http.HttpClient .

Per creare un'istanza di un client, aggiungere il codice seguente al main metodo :

// You can get your connection string from your resource in the Azure portal.
String connectionString = "endpoint=https://<resource-name>.communication.azure.com/;accesskey=<access-key>";

EmailClient emailClient = new EmailClientBuilder()
    .connectionString(connectionString)
    .buildClient();

Per semplicità, questa guida introduttiva usa stringa di connessione, ma negli ambienti di produzione è consigliabile usare le entità servizio.

Inviare un messaggio di posta elettronica a più destinatari

Per inviare un messaggio di posta elettronica a più destinatari, aggiungere i nuovi indirizzi nel setter appropriato EmailMessage . Questi indirizzi possono essere aggiunti come Todestinatari , CCo BCC . Facoltativamente, aggiungere un indirizzo di posta elettronica alla replyTo proprietà se si desidera ricevere eventuali risposte.

EmailMessage message = new EmailMessage()
    .setSenderAddress("<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>")
    .setSubject("Welcome to Azure Communication Services Email")
    .setBodyPlainText("This email message is sent from Azure Communication Services Email using the Java SDK.")
    .setToRecipients("<recipient1@emaildomain.com>", "<recipient2@emaildomain.com>")
    .setCcRecipients("<recipient3@emaildomain.com>")
    .setBccRecipients("<recipient4@emaildomain.com>")
    .setReplyTo("<replytoemail@emaildomain.com>");

SyncPoller<EmailSendResult, EmailSendResult> poller = emailClient.beginSend(message, null);
PollResponse<EmailSendResult> response = poller.waitForCompletion();

System.out.println("Operation Id: " + response.getValue().getId());

Per personalizzare ulteriormente i destinatari dei messaggi di posta elettronica, è possibile creare un'istanza degli EmailAddress oggetti e passarli ai setter appropriati EmailMessage .

EmailAddress toAddress1 = new EmailAddress("<recipient1@emaildomain.com>")
    .setDisplayName("Recipient");

EmailAddress toAddress2 = new EmailAddress("<recipient2@emaildomain.com>")
    .setDisplayName("Recipient 2");

EmailMessage message = new EmailMessage()
    .setSenderAddress("<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>")
    .setSubject("Welcome to Azure Communication Services Email")
    .setBodyPlainText("This email message is sent from Azure Communication Services Email using the Java SDK.")
    .setToRecipients(toAddress1, toAddress2)
    .setCcRecipients(toAddress1, toAddress2)
    .setBccRecipients(toAddress1, toAddress2)

SyncPoller<EmailSendResult, EmailSendResult> poller = emailClient.beginSend(message, null);
PollResponse<EmailSendResult> response = poller.waitForCompletion();

System.out.println("Operation Id: " + response.getValue().getId());

Codice di esempio

È possibile scaricare l'app di esempio che illustra questa azione da GitHub

Per iniziare a usare Servizi di comunicazione di Azure, usare Python Email SDK di Servizi di comunicazione per inviare messaggi di posta elettronica.

Suggerimento

Iniziare subito l'esperienza di invio di messaggi di posta elettronica con Servizi di comunicazione di Azure ignorando direttamente il codice di esempio Invio di posta elettronica di base e Invio di posta elettronica avanzata su GitHub.

Informazioni sul modello a oggetti di posta elettronica

L'oggetto risposta e modello di messaggio JSON seguente illustra alcune delle principali funzionalità di Servizi di comunicazione di Azure Email SDK per Python.

message = {
    "content": {
        "subject": "str",  # Subject of the email message. Required.
        "html": "str",  # Optional. Html version of the email message.
        "plainText": "str"  # Optional. Plain text version of the email
            message.
    },
    "recipients": {
        "to": [
            {
                "address": "str",  # Email address. Required.
                "displayName": "str"  # Optional. Email display name.
            }
        ],
        "bcc": [
            {
                "address": "str",  # Email address. Required.
                "displayName": "str"  # Optional. Email display name.
            }
        ],
        "cc": [
            {
                "address": "str",  # Email address. Required.
                "displayName": "str"  # Optional. Email display name.
            }
        ]
    },
    "senderAddress": "str",  # Sender email address from a verified domain. Required.
    "attachments": [
        {
            "contentInBase64": "str",  # Base64 encoded contents of the attachment. Required.
            "contentType": "str",  # MIME type of the content being attached. Required.
            "name": "str"  # Name of the attachment. Required.
        }
    ],
    "userEngagementTrackingDisabled": bool,  # Optional. Indicates whether user engagement tracking should be disabled for this request if the resource-level user engagement tracking setting was already enabled in the control plane.
    "headers": {
        "str": "str"  # Optional. Custom email headers to be passed.
    },
    "replyTo": [
        {
            "address": "str",  # Email address. Required.
            "displayName": "str"  # Optional. Email display name.
        }
    ]
}

response = {
    "id": "str",  # The unique id of the operation. Uses a UUID. Required.
    "status": "str",  # Status of operation. Required. Known values are:
        "NotStarted", "Running", "Succeeded", and "Failed".
    "error": {
        "additionalInfo": [
            {
                "info": {},  # Optional. The additional info.
                "type": "str"  # Optional. The additional info type.
            }
        ],
        "code": "str",  # Optional. The error code.
        "details": [
            ...
        ],
        "message": "str",  # Optional. The error message.
        "target": "str"  # Optional. The error target.
    }
}

I response.status valori sono illustrati più avanti nella tabella seguente.

Nome stato Descrizione
InProgress L'operazione di invio di posta elettronica è attualmente in corso ed è in corso l'elaborazione.
Riuscito L'operazione di invio tramite posta elettronica è stata completata senza errori e il messaggio di posta elettronica è in uscita per il recapito. Qualsiasi stato dettagliato sul recapito della posta elettronica oltre questa fase può essere ottenuto tramite Monitoraggio di Azure o tramite Griglia di eventi di Azure. Informazioni su come sottoscrivere eventi di posta elettronica
Non riuscito L'operazione di invio della posta elettronica non è riuscita e ha rilevato un errore. Il messaggio di posta elettronica non è stato inviato. Il risultato contiene un oggetto errore con altri dettagli sul motivo dell'errore.

Prerequisiti

Il completamento di questa guida introduttiva comporta un costo ridotto di pochi centesimi di USD o inferiore nell'account Azure.

Nota

È anche possibile inviare un messaggio di posta elettronica dal proprio dominio verificato. Aggiungere domini verificati personalizzati al servizio di comunicazione tramite posta elettronica.

Controllo dei prerequisiti

  • In una finestra del terminale o di comando eseguire il comando python --version per verificare se Python è installato.
  • Per visualizzare i domini verificati con la risorsa di Servizi di comunicazione di posta elettronica, accedere al portale di Azure. Individuare la risorsa Servizi di comunicazione di posta elettronica e aprire la scheda Provision domains (Effettua il provisioning dei domini ) nel riquadro di spostamento sinistro.

Configurare l'ambiente dell'applicazione

Per configurare un ambiente per l'invio di messaggi di posta elettronica, seguire questa procedura nelle sezioni seguenti.

Creare una nuova applicazione Python

  1. Aprire la finestra del terminale o di comando. Usare quindi il comando seguente per creare un ambiente virtuale e attivarlo. Questo comando crea una nuova directory per l'app.

    python -m venv email-quickstart
    
  2. Passare alla directory radice dell'ambiente virtuale e attivarla usando i comandi seguenti.

    cd email-quickstart
    .\Scripts\activate
    
  3. Usare un editor di testo per creare un file denominato send-email.py nella directory radice del progetto e aggiungere la struttura per il programma, inclusa la gestione delle eccezioni di base.

    import os
    from azure.communication.email import EmailClient
    
    try:
        # Quickstart code goes here.
    except Exception as ex:
        print('Exception:')
        print(ex)
    

Nelle sezioni seguenti si aggiunge tutto il codice sorgente per questa guida introduttiva al file di send-email.py creato.

Installare il pacchetto

Nella directory dell'applicazione installare il pacchetto Servizi di comunicazione di Azure Email SDK per Python usando il comando seguente.

pip install azure-communication-email

Creazione del client di posta elettronica con autenticazione

Sono disponibili alcune opzioni diverse per l'autenticazione di un client di posta elettronica:

Creare un'istanza di EmailClient con il stringa di connessione. Informazioni su come gestire le stringa di connessione della risorsa.

# Create the EmailClient object that you use to send Email messages.
email_client = EmailClient.from_connection_string(<connection_string>)

Per semplicità, questa guida introduttiva usa stringa di connessione, ma negli ambienti di produzione è consigliabile usare le entità servizio.

Inviare un messaggio di posta elettronica a più destinatari

È possibile definire più destinatari aggiungendo altri indirizzi di posta elettronica all'oggetto recipients . Questi indirizzi possono essere aggiunti come toelenchi di destinatari , cco bcc di conseguenza. Facoltativamente, è anche possibile aggiungere un ReplyTo indirizzo di posta elettronica per ricevere eventuali risposte.

message = {
    "content": {
        "subject": "This is the subject",
        "plainText": "This is the body",
        "html": "html><h1>This is the body</h1></html>"
    },
    "recipients": {
        "to": [
            {"address": "<recipient1@emaildomain.com>", "displayName": "Customer Name"},
            {"address": "<recipient2@emaildomain.com>", "displayName": "Customer Name 2"}
        ],
        "cc": [
            {"address": "<recipient1@emaildomain.com>", "displayName": "Customer Name"},
            {"address": "<recipient2@emaildomain.com>", "displayName": "Customer Name 2"}
        ],
        "bcc": [
            {"address": "<recipient1@emaildomain.com>", "displayName": "Customer Name"},
            {"address": "<recipient2@emaildomain.com>", "displayName": "Customer Name 2"}
        ]
    },
    "replyTo": [
        {"address": "<replytoemail@emaildomain.com>", "displayName": "Display Name"}
    ],
    "senderAddress": "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>"
}

poller = email_client.begin_send(message)
result = poller.result()

Codice di esempio

È possibile scaricare l'app di esempio che illustra questa azione da GitHub

Risoluzione dei problemi

Recapito tramite posta elettronica

Per risolvere i problemi relativi al recapito tramite posta elettronica, è possibile ottenere lo stato del recapito tramite posta elettronica per acquisire i dettagli di recapito.

Importante

Il risultato dell'esito positivo restituito dal polling per lo stato dell'operazione di invio convalida solo il fatto che il messaggio di posta elettronica sia stato inviato correttamente per il recapito. Per ottenere informazioni aggiuntive sullo stato del recapito alla fine del destinatario, è necessario fare riferimento a come gestire gli eventi di posta elettronica.

Limitazione della posta elettronica

Se si noterà che l'applicazione è bloccata, potrebbe essere dovuta all'invio di messaggi di posta elettronica limitati. È possibile gestirlo tramite la registrazione o implementando un criterio personalizzato.

Nota

Questa configurazione sandbox consente agli sviluppatori di iniziare a compilare l'applicazione. È possibile richiedere gradualmente di aumentare il volume di invio dopo che l'applicazione è pronta per la pubblicazione. Inviare una richiesta di supporto per aumentare il limite di invio desiderato se è necessario inviare un volume di messaggi che superano i limiti di frequenza.

Pulire le risorse del servizio di comunicazione di Azure

Se si vuole pulire e rimuovere una sottoscrizione a Servizi di comunicazione, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate. Altre informazioni sulla pulizia delle risorse.

Passaggi successivi

In questa guida introduttiva si è appreso come eseguire manualmente il polling dello stato durante l'invio di messaggi di posta elettronica tramite Servizi di comunicazione di Azure.

Può essere utile vedere anche gli articoli seguenti: