Sdílet prostřednictvím


Odeslání e-mailu více příjemcům

Tento článek popisuje, jak odesílat e-maily pomocí e-mailové sady SDK více příjemcům.

Začněte se službou Azure Communication Services pomocí e-mailové klientské knihovny komunikačních služeb .NET k odesílání e-mailových zpráv.

Dokončení tohoto článku může na vašem účtu Azure způsobit malý náklad v řádu několika amerických centů nebo méně.

Návod

Začněte vaši zkušenost s odesíláním e-mailů pomocí Azure Communication Services tím, že využijete ukázky z GitHubu - Základní odesílání e-mailů a Pokročilé odesílání e-mailů.

Vysvětlení modelu objektu e-mailu

Následující třídy a rozhraní zpracovávají některé z hlavních funkcí e-mailové knihovny e-mailových služeb Azure pro C#.

Název Popis
E-mailová adresa Tato třída obsahuje e-mailovou adresu a možnost zobrazovaného jména.
Příloha e-mailu Tato třída vytvoří e-mailovou přílohu tím, že přijme jedinečné ID, řetězec typu MIME e-mailové přílohy, binární data pro obsah a volitelné ID obsahu, které jej definuje jako inline přílohu.
E-mailový klient Tato třída je potřebná pro všechny funkce e-mailu. Vytvoříte instanci s připojovací řetězec a použijete ji k odesílání e-mailových zpráv.
Možnosti E-mailového Klienta Tuto třídu je možné přidat do instance EmailClient pro cílení na konkrétní verzi rozhraní API.
Obsah e-mailu Tato třída obsahuje předmět a text e-mailové zprávy. Musíte zadat alespoň jeden z obsahu PlainText nebo Html.
VlastníHlavičkaEmailu Tato třída umožňuje přidání dvojice názvů a hodnot pro vlastní hlavičku. Důležitost e-mailu lze také zadat prostřednictvím těchto hlaviček pomocí názvu záhlaví x-priority nebo x-msmail-priority.
Emailová zpráva Tato třída kombinuje odesílatele, obsah a příjemce. Můžete také přidat vlastní záhlaví, přílohy a e-mailové adresy pro odpovědi.
E-mailRecipients Tato třída obsahuje seznamy objektů EmailAddress pro příjemce e-mailové zprávy, včetně volitelných seznamů pro příjemce kopie a slepé kopie.
OperaceOdesláníEmailu Tato třída představuje asynchronní operaci odeslání e-mailu a je vrácena z volání rozhraní API pro odesílání e-mailů.
VýsledekOdesláníEmailu Tato třída obsahuje výsledky operace odeslání e-mailu. Má ID operace, stav operace a objekt chyby (pokud je k dispozici).

Funkce EmailSendResult vrátí následující stav provedené e-mailové operace.

Stav Popis
Nezahájeno V tuto chvíli tento stav neodesíláme z naší služby.
Běží Právě probíhá a zpracovává se operace odeslání e-mailu.
Úspěšný Operace odeslání e-mailu se dokončila bez chyby a e-mail je k doručení. Jakýkoli podrobný stav o doručení e-mailu nad rámec této fáze je možné získat prostřednictvím služby Azure Monitor nebo prostřednictvím služby Azure Event Grid. Zjistěte, jak se přihlásit k odběru e-mailových událostí.
Neúspěšný Operace odeslání e-mailu nebyla úspěšná a došlo k chybě. E-mail se neodeslal. Výsledek obsahuje objekt chyby s dalšími podrobnostmi o důvodu selhání.

Požadavky

Dokončení tohoto článku může na vašem účtu Azure způsobit malý náklad v řádu několika amerických centů nebo méně.

Poznámka:

Můžeme také poslat e-mail z naší vlastní ověřené domény. Přidání vlastních ověřených domén do e-mailové komunikační služby

Kontrola splnění předpokladů

  • V terminálu nebo příkazovém okně spusťte dotnet příkaz a zkontrolujte, jestli je nainstalovaná klientská knihovna .NET.
  • Pokud chcete zobrazit subdomény přidružené k vašemu prostředku e-mailové komunikační služby, přihlaste se k webu Azure Portal, vyhledejte prostředek e-mailové komunikační služby a v levém navigačním podokně otevřete kartu Zřizovací domény .

Vytvoření nové aplikace jazyka C#

V okně konzoly (například cmd, PowerShell nebo Bash) pomocí dotnet new příkazu vytvořte novou konzolovou aplikaci s názvem EmailQuickstart. Tento příkaz vytvoří jednoduchý projekt "Hello World" C# s jedním zdrojovým souborem: Program.cs.

dotnet new console -o EmailQuickstart

Změňte adresář na nově vytvořenou složku aplikace a pomocí dotnet build příkazu zkompilujte aplikaci.

cd EmailQuickstart
dotnet build

Nainstalujte balíček .

V adresáři aplikace nainstalujte pomocí příkazu dotnet add package klientskou knihovnu balíčku e-mailových služeb Azure Communication Services pro .NET.

dotnet add package Azure.Communication.Email

Vytvoření e-mailového klienta s ověřováním

Otevřete Program.cs a nahraďte stávající kód následujícími direktivami pro přidání using direktiv pro zahrnutí Azure.Communication.Email oboru názvů a výchozího bodu pro spuštění programu.


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)
    {

    }
  }
}

Pro ověření e-mailového klienta máte k dispozici několik možností:

Otevřete Program.cs v textovém editoru a nahraďte tělo metody Main kódem, který inicializuje EmailClient pomocí vašeho řetězce připojení. Následující kód načte připojovací řetězec pro prostředek z proměnné prostředí s názvem COMMUNICATION_SERVICES_CONNECTION_STRING. Zjistěte, jak spravovat připojovací řetězec vašeho prostředku.

// 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);

Odeslání e-mailové zprávy více příjemcům

Více příjemců můžeme definovat přidáním dalších EmailAddresses do objektu EmailRecipients. Tyto adresy lze přidat jako To, CCnebo BCC příjemce. Volitelně můžeme také přidat e-mailovou ReplyTo adresu pro příjem všech odpovědí.

// 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}");
}

Spusťte aplikaci z adresáře aplikace pomocí dotnet run příkazu.

dotnet run

Ukázkový kód

Ukázkovou aplikaci, která demonstruje tuto akci, si můžete stáhnout z Webu Azure Samples Send Email pro .NET.

Začněte se službou Azure Communication Services pomocí e-mailové knihovny JS komunikačních služeb k odesílání e-mailových zpráv.

Dokončení tohoto rychlého startu se na účtu Azure účtuje malá částka v hodnotě několika amerických centů nebo méně.

Návod

Při používání služby Azure Communication Services začněte s odesíláním e-mailů tím, že přímo přejdete na vzorový kód Základní odesílání e-mailů a Pokročilé odesílání e-mailů na GitHubu.

Principy e-mailového objektového modelu

Následující třídy a rozhraní zpracovávají některé z hlavních funkcí e-mailové knihovny e-mailových služeb Azure pro JavaScript.

Název Popis
E-mailová adresa Tato třída obsahuje e-mailovou adresu a možnost zobrazovaného jména.
Příloha e-mailu Tato třída vytvoří e-mailovou přílohu tím, že přijme jedinečné ID, řetězec typu MIME e-mailové přílohy, binární data pro obsah a volitelné ID obsahu, které jej definuje jako inline přílohu.
E-mailový klient Tato třída je potřebná pro všechny funkce e-mailu. Vytvoříte instanci s připojovací řetězec a použijete ji k odesílání e-mailových zpráv.
Možnosti E-mailového Klienta Tuto třídu je možné přidat do instance EmailClient pro cílení na konkrétní verzi rozhraní API.
Obsah e-mailu Tato třída obsahuje předmět a text e-mailové zprávy. Musíte zadat alespoň jeden obsah PlainText nebo Html.
VlastníHlavičkaEmailu Tato třída umožňuje přidání dvojice názvů a hodnot pro vlastní hlavičku. Důležitost e-mailu lze také zadat prostřednictvím těchto hlaviček pomocí názvu záhlaví x-priority nebo x-msmail-priority.
Emailová zpráva Tato třída kombinuje odesílatele, obsah a příjemce. Můžete také přidat vlastní záhlaví, přílohy a e-mailové adresy pro odpovědi.
E-mailRecipients Tato třída obsahuje seznamy objektů EmailAddress pro příjemce e-mailové zprávy, včetně volitelných seznamů pro příjemce kopie a slepé kopie.
VýsledekOdesláníEmailu Tato třída obsahuje výsledky operace odeslání e-mailu. Má ID operace, stav operace a objekt chyby (pokud je k dispozici).
StavOdesláníE-mailu Tato třída představuje sadu stavů operace odeslání e-mailu.

Funkce EmailSendResult vrátí následující stav provedené e-mailové operace.

Název stavu Popis
zahájeno Vrátí hodnotu true, pokud právě probíhá operace odeslání e-mailu a zpracovává se.
jeDokončeno Vrátí hodnotu true, pokud se operace odeslání e-mailu dokončila bez chyby a e-mail je mimo doručení. Jakýkoli podrobný stav o doručení e-mailu nad rámec této fáze je možné získat prostřednictvím služby Azure Monitor nebo prostřednictvím služby Azure Event Grid. Zjistěte, jak se přihlásit k odběru e-mailových událostí.
výsledek Vlastnost, která existuje, pokud operace odeslání e-mailu skončila.
chyba Vlastnost, která existuje, pokud operace odeslání e-mailu nebyla úspěšná a došlo k chybě. E-mail se neodeslal. Výsledek obsahuje objekt chyby s dalšími podrobnostmi o důvodu selhání.

Požadavky

Dokončení tohoto rychlého startu se na účtu Azure účtuje malá částka v hodnotě několika amerických centů nebo méně.

Poznámka:

Můžeme také poslat e-mail z naší vlastní ověřené domény. Přidání vlastních ověřených domén do e-mailové komunikační služby

Kontrola splnění předpokladů

  • V terminálu nebo příkazovém okně spusťte kontrolu node --version , jestli je nainstalovaná Node.js.
  • Pokud chcete zobrazit domény ověřené prostředkem e-mailové komunikační služby, přihlaste se k webu Azure Portal, vyhledejte prostředek e-mailové komunikační služby a v levém navigačním podokně otevřete kartu Zřizovat domény .

Nastavení aplikačního prostředí

Vytvoření nové aplikace Node.js

Nejprve otevřete terminál nebo příkazové okno, vytvořte pro aplikaci nový adresář a přejděte na něj.

mkdir email-quickstart && cd email-quickstart

Spuštěním příkazu npm init -y vytvořte soubor package.json s výchozím nastavením.

npm init -y

Pomocí textového editoru vytvořte soubor s názvem send-email.js v kořenovém adresáři projektu. Změňte vlastnost main v package.json na send-email.js. Následující část ukazuje, jak přidat zdrojový kód pro tento rychlý start do nově vytvořeného souboru.

Nainstalujte balíček .

npm install Pomocí příkazu nainstalujte klientskou knihovnu e-mailových služeb Azure Communication Services pro JavaScript.

npm install @azure/communication-email --save

--save možnost uvede knihovnu jako závislost ve vašem souboru package.json.

Vytvoření e-mailového klienta s ověřováním

Pro ověřování e-mailového klienta je k dispozici několik různých možností:

Importujte EmailClient z klientské knihovny a vytvořte instanci pomocí svého připojovacího řetězce.

Následující kód načte připojovací řetězec prostředku z proměnné prostředí pojmenované COMMUNICATION_SERVICES_CONNECTION_STRING pomocí balíčku dotenv. npm install Pomocí příkazu nainstalujte balíček dotenv. Zjistěte, jak spravovat připojovací řetězec vašeho prostředku.

npm install dotenv

Do send-email.js přidejte následující kód:

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);

Pro zjednodušení tento rychlý start používá připojovací řetězec, ale v produkčních prostředích doporučujeme používat instanční objekty.

Odeslání e-mailové zprávy více příjemcům

Pokud chcete poslat e-mailovou zprávu více příjemcům, přidejte objekt pro každý typ příjemce a objekt pro každého příjemce. Tyto adresy lze přidat jako To, CCnebo BCC příjemce. Volitelně můžete do vlastnosti přidat e-mailovou replyTo adresu, pokud chcete dostávat jakékoli odpovědi.

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();

Ukázkový kód

Ukázkovou aplikaci, která demonstruje tuto akci, si můžete stáhnout z GitHubu Azure Samples Send Email pro JavaScript.

Začněte s Azure Communication Services pomocí Communication Services Java Email SDK k odesílání e-mailových zpráv.

Dokončení tohoto rychlého startu se na účtu Azure účtuje malá částka v hodnotě několika amerických centů nebo méně.

Návod

Při používání služby Azure Communication Services začněte s odesíláním e-mailů tím, že přímo přejdete na vzorový kód Základní odesílání e-mailů a Pokročilé odesílání e-mailů na GitHubu.

Principy e-mailového objektového modelu

Následující třídy a rozhraní zpracovávají některé z hlavních funkcí e-mailové sady SDK služby Azure Communication Services pro Python.

Název Popis
E-mailová adresa Tato třída obsahuje e-mailovou adresu a možnost zobrazovaného jména.
Příloha e-mailu Toto rozhraní vytvoří e-mailovou přílohu tím, že přijme jedinečné ID, řetězec typu MIME přílohy e-mailu, řetězec bajtů obsahu a volitelné ID obsahu, které ji definuje jako vloženou přílohu.
E-mailový klient Tato třída je potřebná pro všechny funkce e-mailu. Vytvoříte instanci s připojovací řetězec a použijete ji k odesílání e-mailových zpráv.
Emailová zpráva Tato třída kombinuje odesílatele, obsah a příjemce. Můžete také přidat vlastní záhlaví, přílohy a e-mailové adresy pro odpovědi.
VýsledekOdesláníEmailu Tato třída obsahuje výsledky operace odeslání e-mailu. Má ID operace, stav operace a objekt chyby (pokud je k dispozici).
StavOdesláníE-mailu Tato třída představuje sadu stavů operace odeslání e-mailu.

Funkce EmailSendResult vrátí následující stav provedené e-mailové operace.

Název stavu Popis
NEZAHÁJENO V tuto chvíli tento stav neodesíláme z naší služby.
Probíhá Právě probíhá a zpracovává se operace odeslání e-mailu.
ÚSPĚŠNĚ_DOKONČENO Operace odeslání e-mailu se dokončila bez chyby a e-mail je k doručení. Jakýkoli podrobný stav o doručení e-mailu nad rámec této fáze je možné získat prostřednictvím služby Azure Monitor nebo prostřednictvím služby Azure Event Grid. Zjistěte, jak se přihlásit k odběru e-mailových událostí.
CHYBA Operace odeslání e-mailu nebyla úspěšná a došlo k chybě. E-mail se neodeslal. Výsledek obsahuje objekt chyby s dalšími podrobnostmi o důvodu selhání.

Požadavky

Při dokončení tohoto rychlého zprovoznění vzniknou ve vašem účtu Azure náklady ve výši několika centů USD (nebo menší).

Poznámka:

Můžeme také odeslat e-mail z naší vlastní ověřené domény Přidat vlastní ověřené domény do e-mailové komunikační služby.

Kontrola splnění předpokladů

  • V terminálu nebo příkazovém okně spusťte kontrolu mvn -v , jestli je maven nainstalovaný.
  • Pokud chcete zobrazit domény ověřené pomocí vašeho prostředku e-mailové komunikace, přihlaste se k webu Azure Portal. Vyhledejte prostředek e-mailové komunikace a v levém navigačním podokně otevřete kartu Zřizovací domény .

Nastavení aplikačního prostředí

Pokud chcete nastavit prostředí pro odesílání e-mailů, postupujte podle kroků v následujících částech.

Vytvoření nové aplikace v Javě

Otevřete terminál nebo příkazové okno a přejděte do adresáře, do kterého chcete vytvořit aplikaci v Javě. Spuštěním následujícího příkazu vygenerujte projekt Java ze šablony 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"

Cíl generate vytvoří adresář se stejným názvem jako artifactId hodnota. V tomto adresáři obsahuje adresář src/main/java zdrojový kód projektu, adresář src/test/java obsahuje zdroj testů a soubor pom.xml je projektový objektový model (POM).

Nainstalujte balíček .

Otevřete soubor pom.xml v textovém editoru. Do skupiny závislostí přidejte následující prvek závislosti.

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

Nastavení architektury aplikace

Otevřete /src/main/java/com/communication/quickstart/App.java v textovém editoru, přidejte direktivy importu System.out.println("Hello world!"); a odeberte příkaz:

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.
    }
}

Vytvoření e-mailového klienta s ověřováním

Pro ověřování e-mailového klienta je k dispozici několik různých možností:

Pokud chcete ověřit klienta, vytvořte instanci z EmailClient s připojovacím řetězcem. Zjistěte, jak spravovat připojovací řetězec vašeho prostředku. Klienta můžete také inicializovat pomocí libovolného vlastního klienta HTTP, který implementuje com.azure.core.http.HttpClient rozhraní.

Pokud chcete vytvořit instanci klienta, přidejte do main metody následující kód:

// 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();

Pro zjednodušení tento rychlý start používá připojovací řetězec, ale v produkčních prostředích doporučujeme používat instanční objekty.

Odeslání e-mailové zprávy více příjemcům

Pokud chcete poslat e-mailovou zprávu více příjemcům, přidejte nové adresy do příslušného EmailMessage pořadí. Tyto adresy lze přidat jako To, CCnebo BCC příjemce. Volitelně můžete do vlastnosti přidat e-mailovou replyTo adresu, pokud chcete dostávat jakékoli odpovědi.

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());

Pokud chcete příjemce e-mailové zprávy dále přizpůsobit, můžete objekty EmailAddress vytvářet jako instance a předat je příslušným setterům 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());

Ukázkový kód

Ukázkovou aplikaci, která demonstruje tuto akci, si můžete stáhnout z GitHubu Azure Samples Send Email pro Javu.

Začněte se službou Azure Communication Services pomocí e-mailové sady SDK pro komunikační služby Python k odesílání e-mailových zpráv.

Dokončení tohoto rychlého startu se na účtu Azure účtuje malá částka v hodnotě několika amerických centů nebo méně.

Návod

Při používání služby Azure Communication Services začněte s odesíláním e-mailů tím, že přímo přejdete na vzorový kód Základní odesílání e-mailů a Pokročilé odesílání e-mailů na GitHubu.

Principy e-mailového objektového modelu

Následující objekt šablony zpráv JSON a odpovědi předvádí některé z hlavních funkcí e-mailové sady SDK služby Azure Communication Services pro 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": [
        {
            "name": "str"  # Name of the attachment. Required.
            "contentType": "str",  # MIME type of the content being attached. Required.
            "contentInBase64": "str",  # Base64 encoded contents of the attachment. Required.
            "contentId": "str" # Unique identifier (CID) to reference an inline attachment. Optional
        }
    ],
    "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.
    }
}

Hodnoty response.status jsou vysvětleny dále v následující tabulce.

Název stavu Popis
Probíhající Právě probíhá a zpracovává se operace odeslání e-mailu.
Úspěšný Operace odeslání e-mailu se dokončila bez chyby a e-mail je k doručení. Jakýkoli podrobný stav o doručení e-mailu nad rámec této fáze je možné získat prostřednictvím služby Azure Monitor nebo prostřednictvím služby Azure Event Grid. Zjistěte, jak se přihlásit k odběru e-mailových událostí.
Neúspěšný Operace odeslání e-mailu nebyla úspěšná a došlo k chybě. E-mail se neodeslal. Výsledek obsahuje objekt chyby s dalšími podrobnostmi o důvodu selhání.

Požadavky

Dokončení tohoto rychlého startu se na účtu Azure účtuje malá částka v hodnotě několika amerických centů nebo méně.

Poznámka:

Můžeme také poslat e-mail z naší vlastní ověřené domény. Přidání vlastních ověřených domén do e-mailové komunikační služby

Kontrola splnění předpokladů

  • V terminálu nebo příkazovém okně spusťte python --version příkaz a zkontrolujte, jestli je Python nainstalovaný.
  • Pokud chcete zobrazit domény ověřené pomocí vašeho prostředku e-mailové komunikace, přihlaste se k webu Azure Portal. Vyhledejte prostředek e-mailové komunikace a v levém navigačním podokně otevřete kartu Zřizovací domény .

Nastavení aplikačního prostředí

Pokud chcete nastavit prostředí pro odesílání e-mailů, postupujte podle kroků v následujících částech.

Vytvoření nové aplikace v Pythonu

  1. Otevřete terminál nebo příkazové okno. Pak pomocí následujícího příkazu vytvořte virtuální prostředí a aktivujte ho. Tento příkaz vytvoří pro vaši aplikaci nový adresář.

    python -m venv email-quickstart
    
  2. Přejděte do kořenového adresáře virtuálního prostředí a aktivujte ho pomocí následujících příkazů.

    cd email-quickstart
    .\Scripts\activate
    
  3. Pomocí textového editoru vytvořte soubor s názvem send-email.py v kořenovém adresáři projektu a přidejte strukturu programu, včetně základního zpracování výjimek.

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

V následujících částech přidáte veškerý zdrojový kód pro tento rychlý start do send-email.py souboru, který jste vytvořili.

Nainstalujte balíček .

Zatímco se stále nacházíte v adresáři aplikace, nainstalujte Email SDK služby Azure Communication Services pro Python pomocí následujícího příkazu.

pip install azure-communication-email

Vytvoření e-mailového klienta s ověřováním

Pro ověřování e-mailového klienta je k dispozici několik různých možností:

Vytvořte instanci EmailClient pomocí vašeho připojovacího řetězce. Zjistěte, jak spravovat připojovací řetězec vašeho prostředku.

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

Pro zjednodušení tento rychlý start používá připojovací řetězec, ale v produkčních prostředích doporučujeme používat instanční objekty.

Odeslání e-mailové zprávy více příjemcům

Více příjemců můžeme definovat přidáním dalších e-mailových adres do objektu recipients . Tyto adresy lze přidat jako to, ccnebo bcc seznamy příjemců odpovídajícím způsobem. Volitelně můžeme také přidat e-mailovou ReplyTo adresu pro příjem všech odpovědí.

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()

Ukázkový kód

Ukázkovou aplikaci, která demonstruje tuto akci, si můžete stáhnout z GitHubu Azure Samples Send Email for Python.

Řešení problému

Doručování e-mailů

Pokud chcete vyřešit problémy související s doručováním e-mailů, můžete získat stav doručení e-mailu a zaznamenat podrobnosti o doručení.

Důležité

Výsledek úspěšného stavu dotazování pro operaci odeslání pouze potvrzuje, že e-mail byl odeslán k doručení. Další informace o stavu doručení na konci příjemce najdete v tématu zpracování e-mailových událostí.

Regulace toku e-mailů

Pokud je vaše aplikace zablokovaná, může to být způsobené omezováním odesílání e-mailů. Můžete řídit omezování e-mailů pomocí protokolování nebo implementace vlastních zásad.

Poznámka:

Cílem tohoto sandboxu je pomoct vývojářům začít vytvářet aplikaci. Jakmile je aplikace připravená k živému provozu, můžete postupně požádat o zvýšení objemu odesílání. Pokud potřebujete odeslat více zpráv, než je počáteční limit rychlosti, odešlete žádost o podporu, která zvýší požadovaný limit odesílání.

Vyčištění prostředků služby Azure Communication Service

Pokud chcete vyčistit a odebrat předplatné služby Communication Services, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené. Další informace najdete v tématu Čištění prostředků.

Další kroky