Delen via


Quickstart: E-mail met bijlagen verzenden

In deze quickstart leert u hoe u e-mail met bijlagen verzendt met behulp van onze E-mail-SDK's.

Ga aan de slag met Azure Communication Services met behulp van de Clientbibliotheek voor .NET-e-mail van Communication Services om e-mailberichten te verzenden.

Tip

Start uw e-mailverzendingservaring met Azure Communication Services door rechtstreeks over te slaan naar de voorbeeldcode Basic Email Verzenden en Geavanceerd e-mail verzenden op GitHub.

Informatie over het e-mailobjectmodel

De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de E-mailclientbibliotheek van Azure Communication Services voor C#.

Name Beschrijving
EmailAddress Deze klasse bevat een e-mailadres en een optie voor een weergavenaam.
E-mailbijlage Met deze klasse wordt een e-mailbijlage gemaakt door een unieke id, MIME-type tekenreeks voor e-mailbijlagen, binaire gegevens voor inhoud en een optionele inhouds-id te accepteren om deze te definiëren als een inlinebijlage.
EmailClient Deze klasse is nodig voor alle e-mailfunctionaliteit. U maakt een instantie met uw verbindingsreeks en gebruikt deze om e-mailberichten te verzenden.
EmailClientOptions Deze klasse kan worden toegevoegd aan de instantie van EmailClient om een specifieke API-versie te targeten.
EmailContent Deze klasse bevat het onderwerp en de hoofdtekst van het e-mailbericht. U moet ten minste één van plaintext- of HTML-inhoud opgeven
EmailCustomHeader Met deze klasse kunt u een naam- en waardepaar toevoegen voor een aangepaste header. Het belang van e-mail kan ook worden opgegeven via deze headers met behulp van de headernaam 'x-priority' of 'x-msmail-priority'
EmailMessage Deze klasse combineert de afzender, inhoud en geadresseerden. Aangepaste kopteksten, bijlagen en e-mailadressen voor antwoorden kunnen ook worden toegevoegd.
EmailRecipients Deze klasse bevat lijsten met EmailAddress-objecten voor geadresseerden van het e-mailbericht, inclusief optionele lijsten voor CC & BCC-geadresseerden.
EmailSendOperation Deze klasse vertegenwoordigt de asynchrone verzendbewerking voor e-mail en wordt geretourneerd vanuit de API-aanroep voor e-mail verzenden.
EmailSendResult Deze klasse bevat de resultaten van de verzendbewerking voor e-mail. Het heeft een bewerkings-id, de bewerkingsstatus en het foutobject (indien van toepassing).

EmailSendResult retourneert de volgende status van de e-mailbewerking die is uitgevoerd.

-Status Beschrijving
NotStarted Deze status wordt momenteel niet verzonden vanuit onze service.
Wordt uitgevoerd De verzendbewerking voor e-mail wordt momenteel uitgevoerd en verwerkt.
Geslaagd De verzendbewerking voor e-mail is zonder fouten voltooid en het e-mailbericht is niet bezorgd. Elke gedetailleerde status van de e-mailbezorging buiten deze fase kan worden verkregen via Azure Monitor of via Azure Event Grid. Meer informatie over het abonneren op e-mailevenementen
Mislukt De verzendbewerking voor e-mail is mislukt en er is een fout opgetreden. Het e-mailbericht is niet verzonden. Het resultaat bevat een foutobject met meer informatie over de reden voor de fout.

Vereisten

Voor het voltooien van deze quickstart worden kleine kosten in rekening gebracht van een paar dollarcenten of minder in uw Azure-account.

Notitie

We kunnen ook een e-mail verzenden vanuit ons eigen geverifieerde domein. Aangepaste geverifieerde domeinen toevoegen aan e-mailcommunicatieservice.

Controle van vereisten

  • Voer in een terminal- of opdrachtvenster de opdracht dotnet uit om te controleren of de .NET-clientbibliotheek is geïnstalleerd.
  • Als u de subdomeinen wilt weergeven die zijn gekoppeld aan uw Resource voor e-mailcommunicatieservices, meldt u zich aan bij Azure Portal, zoekt u uw Resource voor e-mailcommunicatieservices en opent u het tabblad Domeinen inrichten in het linkernavigatiedeelvenster.

Een nieuwe C#-toepassing maken

Gebruik in een consolevenster (zoals cmd, PowerShell of Bash) de opdracht dotnet new om een nieuwe console-app te maken met de naam EmailQuickstart. Met deze opdracht maakt u een eenvoudig C#-project Hallo wereld met één bronbestand: Program.cs.

dotnet new console -o EmailQuickstart

Wijzig uw map in de zojuist gemaakte app-map en gebruik de opdracht dotnet build om uw toepassing te compileren.

cd EmailQuickstart
dotnet build

Het pakket installeren

Terwijl u zich nog in de toepassingsmap bevindt, installeert u de e-mailclientbibliotheek van Azure Communication Services voor .NET-pakket met behulp van de dotnet add package opdracht.

dotnet add package Azure.Communication.Email

De e-mailclient maken met verificatie

Open Program.cs en vervang de bestaande code door het volgende om instructies toe te voegen voor het toevoegen using van de Azure.Communication.Email naamruimte en een beginpunt voor uitvoering voor uw 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)
    {

    }
  }
}

Er zijn enkele verschillende opties beschikbaar voor het verifiëren van een e-mailclient:

Open Program.cs in een teksteditor en vervang de hoofdtekst van de Main-methode door code om een EmailClient te initialiseren met uw verbindingsreeks. Met de volgende code wordt de verbindingsreeks voor de resource opgehaald uit een omgevingsvariabele met de naam COMMUNICATION_SERVICES_CONNECTION_STRING. Meer informatie over het beheren van de verbindingsreeks van uw resource.

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

Een e-mailbericht met bijlagen verzenden

We kunnen een bijlage toevoegen door een EmailAttachment-object te definiëren en toe te voegen aan ons EmailMessage-object. Lees het bijlagebestand en codeer het met 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}");
}

Voer de toepassing uit vanuit uw toepassingsmap met de opdracht dotnet run.

dotnet run

Toegestane MIME-typen

Zie de documentatie over toegestane MIME-typen voor e-mailbijlagen voor meer informatie over acceptabele MIME-typen .

Voorbeeldcode

U kunt de voorbeeld-app downloaden waarin deze actie wordt gedemonstreerd vanuit GitHub

Ga aan de slag met Azure Communication Services met behulp van de Clientbibliotheek voor JS-e-mail van Communication Services om e-mailberichten te verzenden.

Tip

Start uw e-mailverzendingservaring met Azure Communication Services door rechtstreeks over te slaan naar de voorbeeldcode Basic Email Verzenden en Geavanceerd e-mail verzenden op GitHub.

Informatie over het e-mailobjectmodel

De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Azure Communication Services-clientbibliotheek voor e-mail voor JavaScript.

Name Beschrijving
EmailAddress Deze klasse bevat een e-mailadres en een optie voor een weergavenaam.
E-mailbijlage Met deze klasse wordt een e-mailbijlage gemaakt door een unieke id, MIME-type tekenreeks voor e-mailbijlagen, binaire gegevens voor inhoud en een optionele inhouds-id te accepteren om deze te definiëren als een inlinebijlage.
EmailClient Deze klasse is nodig voor alle e-mailfunctionaliteit. U maakt een instantie met uw verbindingsreeks en gebruikt deze om e-mailberichten te verzenden.
EmailClientOptions Deze klasse kan worden toegevoegd aan de instantie van EmailClient om een specifieke API-versie te targeten.
EmailContent Deze klasse bevat het onderwerp en de hoofdtekst van het e-mailbericht. U moet ten minste één van plaintext- of HTML-inhoud opgeven.
EmailCustomHeader Met deze klasse kunt u een naam- en waardepaar toevoegen voor een aangepaste header. Het belang van e-mail kan ook worden opgegeven via deze headers met behulp van de koptekstnaam 'x-priority' of 'x-msmail-priority'.
EmailMessage Deze klasse combineert de afzender, inhoud en geadresseerden. Aangepaste kopteksten, bijlagen en e-mailadressen voor antwoorden kunnen ook worden toegevoegd.
EmailRecipients Deze klasse bevat lijsten met EmailAddress-objecten voor geadresseerden van het e-mailbericht, inclusief optionele lijsten voor CC & BCC-geadresseerden.
EmailSendResult Deze klasse bevat de resultaten van de verzendbewerking voor e-mail. Het heeft een bewerkings-id, de bewerkingsstatus en het foutobject (indien van toepassing).
EmailSendStatus Deze klasse vertegenwoordigt de set statussen van een verzendbewerking per e-mail.

EmailSendResult retourneert de volgende status van de e-mailbewerking die is uitgevoerd.

Statusnaam Beschrijving
isStarted Retourneert waar als de verzendbewerking voor e-mail momenteel wordt uitgevoerd en wordt verwerkt.
isCompleted Retourneert waar als de verzendbewerking voor e-mail zonder fouten is voltooid en de e-mail is uitgeschakeld voor bezorging. Elke gedetailleerde status van de e-mailbezorging buiten deze fase kan worden verkregen via Azure Monitor of via Azure Event Grid. Meer informatie over het abonneren op e-mailevenementen
resultaat Eigenschap die bestaat als de verzendbewerking voor e-mail is afgesloten.
error Eigenschap die bestaat als de verzendbewerking voor e-mail niet is geslaagd en er een fout is opgetreden. Het e-mailbericht is niet verzonden. Het resultaat bevat een foutobject met meer informatie over de reden voor de fout.

Vereisten

Voor het voltooien van deze quickstart worden kleine kosten in rekening gebracht van een paar dollarcenten of minder in uw Azure-account.

Notitie

We kunnen ook een e-mail verzenden vanuit ons eigen geverifieerde domein. Aangepaste geverifieerde domeinen toevoegen aan e-mailcommunicatieservice.

Controle van vereisten

  • Voer node --version in een terminal of opdrachtvenster uit om te controleren of Node.js is geïnstalleerd.
  • Als u de domeinen wilt weergeven die zijn geverifieerd met uw E-mail Communication Services-resource, meldt u zich aan bij De Azure-portal, zoekt u uw E-mail Communication Services-resource en opent u het tabblad Domeinen inrichten in het linkernavigatiedeelvenster.

De toepassingsomgeving instellen

Een nieuwe Node.js-toepassing maken

Open eerst uw terminal of opdrachtvenster, maak een nieuwe map voor uw app en navigeer daar naartoe.

mkdir email-quickstart && cd email-quickstart

Voer npm init -y uit om een package.json-bestand te maken met de standaardinstellingen.

npm init -y

Gebruik een teksteditor om een bestand met de naam send-email.js te maken in de hoofdmap van het project. Wijzig de eigenschap 'main' in package.json in 'send-email.js'. In de volgende sectie ziet u hoe u de broncode voor deze quickstart toevoegt aan het zojuist gemaakte bestand.

Het pakket installeren

Gebruik de npm install opdracht om de e-mailclientbibliotheek van Azure Communication Services voor JavaScript te installeren.

npm install @azure/communication-email --save

De optie --save geeft de bibliotheek weer als afhankelijkheid in het package.json-bestand.

De e-mailclient maken met verificatie

Er zijn enkele verschillende opties beschikbaar voor het verifiëren van een e-mailclient:

Importeer de EmailClient uit de clientbibliotheek en maak er een exemplaar van met uw verbindingsreeks.

Met de volgende code wordt de verbindingsreeks voor de resource opgehaald uit een omgevingsvariabele met COMMUNICATION_SERVICES_CONNECTION_STRING behulp van het dotenv-pakket. Gebruik de npm install opdracht om het dotenv-pakket te installeren. Meer informatie over het beheren van de verbindingsreeks van uw resource.

npm install dotenv

Voeg de volgende code toe aan 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);

Voor het gemak gebruikt deze quickstart verbindingsreeks s, maar in productieomgevingen raden we u aan service-principals te gebruiken.

Een e-mailbericht met bijlagen verzenden

We kunnen een bijlage toevoegen door een bijlageobject te definiëren en toe te voegen aan ons bericht. Lees het bijlagebestand en codeer het met 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();

Toegestane MIME-typen

Zie de documentatie over toegestane MIME-typen voor e-mailbijlagen voor meer informatie over acceptabele MIME-typen .

Voorbeeldcode

U kunt de voorbeeld-app downloaden waarin deze actie wordt gedemonstreerd vanuit GitHub

Ga aan de slag met Azure Communication Services met behulp van de Java Email SDK voor Communication Services om e-mailberichten te verzenden.

Tip

Start uw e-mailverzendingservaring met Azure Communication Services door rechtstreeks over te slaan naar de voorbeeldcode Basic Email Verzenden en Geavanceerd e-mail verzenden op GitHub.

Informatie over het e-mailobjectmodel

De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Azure Communication Services Email SDK voor Python.

Name Beschrijving
EmailAddress Deze klasse bevat een e-mailadres en een optie voor een weergavenaam.
E-mailbijlage Deze interface maakt een e-mailbijlage door een unieke id, MIME-type tekenreeks voor e-mailbijlagen, een tekenreeks met inhoudsbytes en een optionele inhouds-id te accepteren om deze te definiëren als een inlinebijlage.
EmailClient Deze klasse is nodig voor alle e-mailfunctionaliteit. U maakt een instantie met uw verbindingsreeks en gebruikt deze om e-mailberichten te verzenden.
EmailMessage Deze klasse combineert de afzender, inhoud en geadresseerden. Aangepaste kopteksten, bijlagen en e-mailadressen voor antwoorden kunnen ook worden toegevoegd.
EmailSendResult Deze klasse bevat de resultaten van de verzendbewerking voor e-mail. Het heeft een bewerkings-id, de bewerkingsstatus en het foutobject (indien van toepassing).
EmailSendStatus Deze klasse vertegenwoordigt de set statussen van een verzendbewerking per e-mail.

EmailSendResult retourneert de volgende status van de e-mailbewerking die is uitgevoerd.

Statusnaam Beschrijving
NOT_STARTED Deze status wordt momenteel niet verzonden vanuit onze service.
WORDT_UITGEVOERD De verzendbewerking voor e-mail wordt momenteel uitgevoerd en verwerkt.
SUCCESSFULLY_COMPLETED De verzendbewerking voor e-mail is zonder fouten voltooid en het e-mailbericht is niet bezorgd. Elke gedetailleerde status van de e-mailbezorging buiten deze fase kan worden verkregen via Azure Monitor of via Azure Event Grid. Meer informatie over het abonneren op e-mailevenementen
MISLUKT De verzendbewerking voor e-mail is mislukt en er is een fout opgetreden. Het e-mailbericht is niet verzonden. Het resultaat bevat een foutobject met meer informatie over de reden voor de fout.

Vereisten

Voor het voltooien van deze quickstart worden kosten van een paar dollarcent of minder in rekening gebracht bij uw Azure-account.

Notitie

We kunnen ook een e-mail verzenden vanuit ons eigen geverifieerde domein Aangepaste geverifieerde domeinen toevoegen aan e-mailcommunicatieservice.

Controle van vereisten

  • Voer in een terminal- of opdrachtvenster uit mvn -v om te controleren of Maven is geïnstalleerd.
  • Meld u aan bij Azure Portal om de domeinen weer te geven die zijn geverifieerd met uw E-mail Communication Services-resource. Zoek uw E-mail Communication Services-resource en open het tabblad Domeinen inrichten vanuit het linkernavigatiedeelvenster.

De toepassingsomgeving instellen

Als u een omgeving wilt instellen voor het verzenden van e-mailberichten, voert u de stappen in de volgende secties uit.

Een nieuwe Java-toepassing maken

Open uw terminal- of opdrachtvenster en navigeer naar de map waarin u uw Java-toepassing wilt maken. Voer de volgende opdracht uit om het Java-project te genereren op basis van de maven-archetype-quickstart-sjabloon.

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

Het generate doel maakt een map met dezelfde naam als de artifactId waarde. Onder deze map bevat de src/main/java-map de broncode van het project, bevat de src/test/java-map de testbron en het pom.xml bestand is het Project Object Model (POM) van het project.

Het pakket installeren

Open het bestand pom.xml in uw teksteditor. Voeg het volgende afhankelijkheidselement toe aan de groep met afhankelijkheden.

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

Stel het app-framework in

Open /src/main/java/com/communication/quickstart/App.java in een teksteditor, voeg importrichtlijnen toe en verwijder de System.out.println("Hello world!"); instructie:

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

De e-mailclient maken met verificatie

Er zijn enkele verschillende opties beschikbaar voor het verifiëren van een e-mailclient:

Als u een client wilt verifiëren, instantieert u een EmailClient instantie met uw verbindingsreeks. Meer informatie over het beheren van de verbindingsreeks van uw resource. U kunt de client ook initialiseren met elke aangepaste HTTP-client die de com.azure.core.http.HttpClient interface implementeert.

Als u een client wilt instantiëren, voegt u de volgende code toe aan de main methode:

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

Voor het gemak gebruikt deze quickstart verbindingsreeks s, maar in productieomgevingen raden we u aan service-principals te gebruiken.

Een e-mailbericht met bijlagen verzenden

We kunnen een bijlage toevoegen door een EmailAttachment-object te definiëren en toe te voegen aan ons EmailMessage-object. Lees het bijlagebestand en codeer het met 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());

Toegestane MIME-typen

Zie de documentatie over toegestane MIME-typen voor e-mailbijlagen voor meer informatie over acceptabele MIME-typen .

Voorbeeldcode

U kunt de voorbeeld-app downloaden waarin deze actie wordt gedemonstreerd vanuit GitHub

Ga aan de slag met Azure Communication Services met behulp van de Python Email SDK voor Communication Services om e-mailberichten te verzenden.

Tip

Start uw e-mailverzendingservaring met Azure Communication Services door rechtstreeks over te slaan naar de voorbeeldcode Basic Email Verzenden en Geavanceerd e-mail verzenden op GitHub.

Informatie over het e-mailobjectmodel

In het volgende JSON-berichtsjabloon en antwoordobject ziet u enkele van de belangrijkste functies van de Azure Communication Services Email SDK voor 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.
    }
}

De response.status waarden worden verder uitgelegd in de volgende tabel.

Statusnaam Beschrijving
In uitvoering De verzendbewerking voor e-mail wordt momenteel uitgevoerd en verwerkt.
Geslaagd De verzendbewerking voor e-mail is zonder fouten voltooid en het e-mailbericht is niet bezorgd. Elke gedetailleerde status van de e-mailbezorging buiten deze fase kan worden verkregen via Azure Monitor of via Azure Event Grid. Meer informatie over het abonneren op e-mailevenementen
Mislukt De verzendbewerking voor e-mail is mislukt en er is een fout opgetreden. Het e-mailbericht is niet verzonden. Het resultaat bevat een foutobject met meer informatie over de reden voor de fout.

Vereisten

Voor het voltooien van deze quickstart worden kleine kosten in rekening gebracht van een paar dollarcenten of minder in uw Azure-account.

Notitie

We kunnen ook een e-mail verzenden vanuit ons eigen geverifieerde domein. Aangepaste geverifieerde domeinen toevoegen aan e-mailcommunicatieservice.

Controle van vereisten

  • Voer in een terminal- of opdrachtvenster de opdracht python --version uit om te controleren of Python is geïnstalleerd.
  • Meld u aan bij Azure Portal om de domeinen weer te geven die zijn geverifieerd met uw E-mail Communication Services-resource. Zoek uw E-mail Communication Services-resource en open het tabblad Domeinen inrichten vanuit het linkernavigatiedeelvenster.

De toepassingsomgeving instellen

Als u een omgeving wilt instellen voor het verzenden van e-mailberichten, voert u de stappen in de volgende secties uit.

Een nieuwe Python-toepassing maken

  1. Open uw terminal-of opdrachtvenster. Gebruik vervolgens de volgende opdracht om een virtuele omgeving te maken en deze te activeren. Met deze opdracht maakt u een nieuwe map voor uw app.

    python -m venv email-quickstart
    
  2. Navigeer naar de hoofdmap van de virtuele omgeving en activeer deze met behulp van de volgende opdrachten.

    cd email-quickstart
    .\Scripts\activate
    
  3. Gebruik een teksteditor om een bestand met de naam send-email.py te maken in de hoofdmap van het project en de structuur voor het programma toe te voegen, inclusief eenvoudige verwerking van uitzonderingen.

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

In de volgende secties voegt u alle broncode voor deze quickstart toe aan het send-email.py bestand dat u hebt gemaakt.

Het pakket installeren

Installeer, terwijl u zich nog in de toepassingsmap bevindt, de Azure Communication Services Email SDK voor Python-pakket met behulp van de volgende opdracht.

pip install azure-communication-email

De e-mailclient maken met verificatie

Er zijn enkele verschillende opties beschikbaar voor het verifiëren van een e-mailclient:

Instantieer een EmailClient met uw verbindingsreeks. Meer informatie over het beheren van de verbindingsreeks van uw resource.

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

Voor het gemak gebruikt deze quickstart verbindingsreeks s, maar in productieomgevingen raden we u aan service-principals te gebruiken.

Een e-mailbericht met bijlagen verzenden

We kunnen een bijlage toevoegen door een attachment bijlage te definiëren en toe te voegen aan het attachments object.message Lees het bijlagebestand en codeer het met Base64. Decoderen de bytes als een tekenreeks en geven deze door aan het attachment object.

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

Toegestane MIME-typen

Zie de documentatie over toegestane MIME-typen voor e-mailbijlagen voor meer informatie over acceptabele MIME-typen .

Voorbeeldcode

U kunt de voorbeeld-app downloaden waarin deze actie wordt gedemonstreerd vanuit GitHub

Probleemoplossing

E-mailbezorging

Als u problemen met betrekking tot e-mailbezorging wilt oplossen, kunt u de status van de e-mailbezorging ophalen om details van de bezorging vast te leggen.

Belangrijk

Het resultaat dat is geretourneerd door te peilen naar de status van de verzendbewerking, valideert alleen het feit dat het e-mailbericht is verzonden voor bezorging. Als u meer informatie wilt over de status van de bezorging aan het einde van de geadresseerde, moet u verwijzen naar het afhandelen van e-mailevenementen.

Beperking van e-mail

Als u ziet dat uw toepassing vasthangt, kan dit komen doordat het verzenden van e-mail wordt beperkt. U kunt dit afhandelen via logboekregistratie of door een aangepast beleid te implementeren.

Notitie

Deze sandbox-installatie is bedoeld om ontwikkelaars te helpen bij het bouwen van de toepassing. U kunt geleidelijk aanvragen om het verzendvolume te verhogen zodra de toepassing klaar is om live te gaan. Dien een ondersteuningsaanvraag in om de gewenste verzendlimiet te verhogen als u een aantal berichten wilt verzenden dat de frequentielimieten overschrijdt.

Azure Communication Service-resources opschonen

Als u een Communication Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd. Meer informatie over het opschonen van resources.

Volgende stappen

In deze quickstart hebt u geleerd hoe u een e-mailbericht met bijlagen verzendt met behulp van Azure Communication Services.

U wilt mogelijk ook: