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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- La versione più recente della libreria client .NET Core per il sistema operativo in uso.
- Una risorsa di Servizi di comunicazione di posta elettronica di Azure creata e pronta con un dominio di cui è stato effettuato il provisioning Introduzione alla creazione di una risorsa di comunicazione tramite posta elettronica
- Una risorsa di Servizi di comunicazione attiva connessa al dominio di posta elettronica e a una stringa di Connessione ion. Introduzione Connessione risorsa di posta elettronica con una risorsa di comunicazione
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 To
destinatari , CC
o 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
- Node.js (~14).
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Una risorsa di Servizi di comunicazione tramite posta elettronica di Azure creata e pronta con un dominio di cui è stato effettuato il provisioning. Introduzione alla creazione di una risorsa di comunicazione tramite posta elettronica.
- Una risorsa Servizi di comunicazione di Azure attiva connessa a un dominio di posta elettronica e al relativo stringa di connessione. Per iniziare, connettersi a una risorsa di comunicazione tramite posta elettronica con una risorsa di comunicazione di Azure.
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 To
destinatari , CC
o 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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Java Development Kit (JDK) versione 8 o successiva.
- Apache Maven.
- Una risorsa di Servizi di comunicazione distribuita e una stringa di connessione. Per informazioni dettagliate, vedere Creare una risorsa di Servizi di comunicazione.
- Creare una risorsa di Servizi di comunicazione tramite posta elettronica di Azure per iniziare a inviare messaggi di posta elettronica.
- Un'identità gestita di configurazione per un ambiente di sviluppo, vedere Autorizzare l'accesso con l'identità gestita.
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 To
destinatari , CC
o 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
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Python 3.7+.
- Una risorsa di Servizi di comunicazione tramite posta elettronica di Azure creata e pronta con un dominio di cui è stato effettuato il provisioning. Introduzione alla creazione di una risorsa di comunicazione tramite posta elettronica.
- Una risorsa Servizi di comunicazione di Azure attiva connessa a un dominio di posta elettronica e al relativo stringa di connessione. Per iniziare, connettersi a una risorsa di comunicazione tramite posta elettronica con una risorsa di comunicazione di Azure.
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
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
Passare alla directory radice dell'ambiente virtuale e attivarla usando i comandi seguenti.
cd email-quickstart .\Scripts\activate
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 to
elenchi di destinatari , cc
o 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:
- Informazioni su come eseguire manualmente il polling dello stato della posta elettronica
- Altre informazioni sull'invio di messaggi di posta elettronica con allegati
- Acquisire familiarità con la libreria client di posta elettronica