Sdílet prostřednictvím


Rychlý start: Odesílání e-mailů s přílohami

V tomto rychlém startu se dozvíte, jak odesílat e-maily s přílohami pomocí našich e-mailových sad SDK.

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.

Tip

Přeskočením přímo na Základní odesílání e-mailů a pokročilým odesíláním e-mailů na GitHubu můžete začít s prostředím pro odesílání e-mailů pomocí Azure Communication Services.

Principy 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
EmailAddress Tato třída obsahuje e-mailovou adresu a možnost zobrazovaného jména.
Připojení e-mailu Tato třída vytvoří e-mailovou přílohu přijetím jedinečného ID, řetězcem typu MIME přílohy e-mailu, binárními daty pro obsah a volitelným ID obsahu, které ji definuje jako vloženou přílohu.
EmailClient 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.
EmailClientOptions Tuto třídu je možné přidat do instance EmailClient pro cílení na konkrétní verzi rozhraní API.
EmailContent Tato třída obsahuje předmět a text e-mailové zprávy. Musíte zadat alespoň jeden z obsahu PlainText nebo Html.
EmailCustomHeader 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.
EmailMessage 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 skryté kopie.
EmailSendOperation 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ů.
EmailSendResult 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.

Status Popis
NotStarted V tuto chvíli tento stav neodesíláme z naší služby.
Spuštěno 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ím tohoto rychlého startu se v účtu Azure účtují malé náklady na pár centů nebo méně USD.

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 požadovaných součástí

  • 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 klientskou knihovnu e-mailových služeb Azure Communication Services pro balíček dotnet add package .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ěřování e-mailového klienta je k dispozici několik různých možností:

Otevřete Program.cs v textovém editoru a nahraďte text Main metody kódem, který inicializuje EmailClient připojovací řetězec. 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 s přílohami

Přílohu můžeme přidat definováním objektu EmailAttachment a jeho přidáním do objektu EmailMessage. Přečtěte si soubor přílohy a zakódujte ho pomocí Base64.


// 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 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
    recipientAddress: "emailalias@contoso.com"
    content: emailContent);

// Create the EmailAttachment
var filePath = "C:\Users\Documents\attachment.pdf";
byte[] bytes = File.ReadAllBytes(filePath);
var contentBinaryData = new BinaryData(bytes);
var emailAttachment = new EmailAttachment("attachment.pdf", MediaTypeNames.Application.Pdf, contentBinaryData);

emailMessage.Attachments.Add(emailAttachment);

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

Povolené typy MIME

Další informace o přijatelných typech MIME pro e-mailové přílohy najdete v dokumentaci k povoleným typům MIME.

Ukázkový kód

Ukázkovou aplikaci, která demonstruje tuto akci, si můžete stáhnout z GitHubu.

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.

Tip

Přeskočením přímo na Základní odesílání e-mailů a pokročilým odesíláním e-mailů na GitHubu můžete začít s prostředím pro odesílání e-mailů pomocí Azure Communication Services.

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
EmailAddress Tato třída obsahuje e-mailovou adresu a možnost zobrazovaného jména.
Připojení e-mailu Tato třída vytvoří e-mailovou přílohu přijetím jedinečného ID, řetězcem typu MIME přílohy e-mailu, binárními daty pro obsah a volitelným ID obsahu, které ji definuje jako vloženou přílohu.
EmailClient 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.
EmailClientOptions Tuto třídu je možné přidat do instance EmailClient pro cílení na konkrétní verzi rozhraní API.
EmailContent Tato třída obsahuje předmět a text e-mailové zprávy. Musíte zadat alespoň jeden obsah PlainText nebo Html.
EmailCustomHeader 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.
EmailMessage 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 skryté kopie.
EmailSendResult Tato třída obsahuje výsledky operace odeslání e-mailu. Má ID operace, stav operace a objekt chyby (pokud je k dispozici).
EmailSendStatus 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
isStarted Vrátí hodnotu true, pokud právě probíhá operace odeslání e-mailu a zpracovává se.
isCompleted 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í.
result 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ím tohoto rychlého startu se v účtu Azure účtují malé náklady na pár centů nebo méně USD.

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 požadovaných součástí

  • 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

Tato --save možnost vypíše knihovnu jako závislost v 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í:

Naimportujte e-mailový klient z klientské knihovny a vytvořte instanci pomocí svého připojovací řetězec.

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 s přílohami

Přílohu můžeme přidat tak, že definujeme objekt přílohy a přidáme ji do naší zprávy. Přečtěte si soubor přílohy a zakódujte ho pomocí Base64.

const filePath = "<path-to-your-file>";

const message = {
  sender: "<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 JavaScript SDK.>"
  },
  recipients: {
    to: [
      {
        address: "<emailalias@emaildomain.com>",
        displayName: "Customer Name",
      }
    ]
  },
  attachments: [
    {
      name: path.basename(filePath),
      contentType: "<mime-type-for-your-file>",
      contentInBase64: readFileSync(filePath, "base64"),
    }
  ]
};

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

Povolené typy MIME

Další informace o přijatelných typech MIME pro e-mailové přílohy najdete v dokumentaci k povoleným typům MIME.

Ukázkový kód

Ukázkovou aplikaci, která demonstruje tuto akci, si můžete stáhnout z GitHubu.

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

Tip

Přeskočením přímo na Základní odesílání e-mailů a pokročilým odesíláním e-mailů na GitHubu můžete začít s prostředím pro odesílání e-mailů pomocí Azure Communication Services.

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
EmailAddress Tato třída obsahuje e-mailovou adresu a možnost zobrazovaného jména.
Připojení 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.
EmailClient 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.
EmailMessage 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.
EmailSendResult Tato třída obsahuje výsledky operace odeslání e-mailu. Má ID operace, stav operace a objekt chyby (pokud je k dispozici).
EmailSendStatus 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
NOT_STARTED V tuto chvíli tento stav neodesíláme z naší služby.
IN_PROGRESS Právě probíhá a zpracovává se operace odeslání e-mailu.
SUCCESSFULLY_COMPLETED 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 požadovaných součástí

  • 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 EmailClient s připojovací řetězec. 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 s přílohami

Přílohu můžeme přidat definováním objektu EmailAttachment a jeho přidáním do objektu EmailMessage. Přečtěte si soubor přílohy a zakódujte ho pomocí Base64.

BinaryData attachmentContent = BinaryData.fromFile(new File("C:/attachment.txt").toPath());
EmailAttachment attachment = new EmailAttachment(
    "attachment.txt",
    "text/plain",
    attachmentContent
);

EmailMessage message = new EmailMessage()
    .setSenderAddress("<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>")
    .setToRecipients("<emailalias@emaildomain.com>")
    .setSubject("Welcome to Azure Communication Services Email")
    .setBodyPlainText("This email message is sent from Azure Communication Services Email using the Java SDK.");
    .setAttachments(attachment);

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

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

Povolené typy MIME

Další informace o přijatelných typech MIME pro e-mailové přílohy najdete v dokumentaci k povoleným typům MIME.

Ukázkový kód

Ukázkovou aplikaci, která demonstruje tuto akci, si můžete stáhnout z GitHubu.

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.

Tip

Přeskočením přímo na Základní odesílání e-mailů a pokročilým odesíláním e-mailů na GitHubu můžete začít s prostředím pro odesílání e-mailů pomocí Azure Communication Services.

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ím tohoto rychlého startu se v účtu Azure účtují malé náklady na pár centů nebo méně USD.

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 požadovaných součástí

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

V adresáři aplikace nainstalujte sadu SDK e-mailu 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 e-mailového klienta pomocí svého připojovací řetězec. 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 s přílohami

Přílohu můžeme přidat tak, že definujeme attachment a přidáme ji do objektu attachments message . Přečtěte si soubor přílohy a zakódujte ho pomocí Base64. Dekódujte bajty jako řetězec a předejte ho do objektu attachment .

import base64

with open("<path-to-your-attachment>", "rb") as file:
    file_bytes_b64 = base64.b64encode(file.read())

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"
            }
        ]
    },
    "senderAddress": "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>",
    "attachments": [
        {
            "name": "<your-attachment-name>",
            "contentType": "<your-attachment-mime-type>",
            "contentInBase64": file_bytes_b64.decode()
        }
    ]
}

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

Povolené typy MIME

Další informace o přijatelných typech MIME pro e-mailové přílohy najdete v dokumentaci k povoleným typům MIME.

Ukázkový kód

Ukázkovou aplikaci, která demonstruje tuto akci, si můžete stáhnout z GitHubu.

Ř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ěchu vrácený dotazem na stav operace odeslání ověří pouze skutečnost, že se e-mail úspěšně odeslal k doručení. Pokud chcete získat další informace o stavu doručení na konci příjemce, budete muset odkazovat na zpracování e-mailových událostí.

Omezení e-mailu

Pokud zjistíte, že aplikace je zablokovaná, může to být kvůli omezování odesílání e-mailů. Můžete to zpracovat prostřednictvím protokolování nebo implementací vlastních zásad.

Poznámka:

Toto nastavení sandboxu pomáhá 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í odesílajícího svazku. Odešlete žádost o podporu pro zvýšení požadovaného limitu odesílání, pokud požadujete odeslání objemu zpráv překračujících limity rychlosti.

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é. Přečtěte si další informace o čištění prostředků.

Další kroky

V tomto rychlém startu jste zjistili, jak odeslat e-mail s přílohami pomocí Azure Communication Services.

Můžete také chtít: