Hızlı Başlangıç: Ekleri olan e-posta gönderme

Bu hızlı başlangıçta, E-posta SDK'larımızı kullanarak eklerle e-posta göndermeyi öğreneceksiniz.

E-posta iletileri göndermek için İletişim Hizmetleri .NET E-posta istemci kitaplığını kullanarak Azure İletişim Hizmetleri kullanmaya başlayın.

İpucu

Doğrudan GitHub'da Temel E-posta Gönderme ve Gelişmiş E-posta Gönderme örnek koduna atlayarak Azure İletişim Hizmetleri ile e-posta gönderme deneyiminizi hemen başlatın.

E-posta Nesnesi modelini anlama

Aşağıdaki sınıflar ve arabirimler, C# için Azure İletişim Hizmetleri E-posta İstemcisi kitaplığının bazı önemli özelliklerini işler.

Veri Akışı Adı Açıklama
EmailAddress Bu sınıf bir e-posta adresi ve görünen ad seçeneği içerir.
EmailAttachment Bu sınıf benzersiz bir kimlik, e-posta eki MIME tür dizesi, içerik için ikili veriler ve bunu satır içi ek olarak tanımlamak için isteğe bağlı bir içerik kimliği kabul ederek bir e-posta eki oluşturur.
EmailClient Bu sınıf tüm e-posta işlevleri için gereklidir. bağlantı dizesi örneği oluşturur ve e-posta iletileri göndermek için kullanırsınız.
EmailClientOptions Bu sınıf, belirli bir API sürümünü hedeflemek için EmailClient örneğine eklenebilir.
EmailContent Bu sınıf, e-posta iletisinin konusunu ve gövdesini içerir. Düz Metin veya Html içeriklerinden en az birini belirtmeniz gerekir
EmailCustomHeader Bu sınıf, özel üst bilgi için ad ve değer çiftinin eklenmesine olanak tanır. E-postanın önemi bu üst bilgiler aracılığıyla 'x-priority' veya 'x-msmail-priority' üst bilgi adı kullanılarak da belirtilebilir
EmailMessage Bu sınıf göndereni, içeriği ve alıcıları birleştirir. İsteğe bağlı olarak özel üst bilgiler, ekler ve yanıtla e-posta adresleri de eklenebilir.
EmailRecipients Bu sınıf, BILGI ve Gizli alıcıları için isteğe bağlı listeler de dahil olmak üzere e-posta iletisinin alıcıları için EmailAddress nesnelerinin listelerini tutar.
EmailSendOperation Bu sınıf zaman uyumsuz e-posta gönderme işlemini temsil eder ve e-posta gönderme api çağrısından döndürülür.
EmailSendResult Bu sınıf, e-posta gönderme işleminin sonuçlarını tutar. İşlem kimliği, işlem durumu ve hata nesnesi (varsa) vardır.

EmailSendResult, gerçekleştirilen e-posta işleminde aşağıdaki durumu döndürür.

Çalıştırma Durumu Açıklama
NotStarted Bu durum şu anda hizmetimizden gönderilmiyor.
Çalışıyor E-posta gönderme işlemi şu anda devam ediyor ve işleniyor.
Başarılı E-posta gönderme işlemi hatasız tamamlandı ve e-posta teslim edilmek üzere dışarıda. Bu aşamanın ötesinde e-posta teslimi hakkında ayrıntılı durum, Azure İzleyici veya Azure Event Grid aracılığıyla alınabilir. E-posta olaylarına abone olmayı öğrenin
Başarısız E-posta gönderme işlemi başarılı olmadı ve bir hatayla karşılaştı. E-posta gönderilmedi. Sonuç, hatanın nedeni hakkında daha fazla ayrıntı içeren bir hata nesnesi içerir.

Önkoşullar

Bu hızlı başlangıcı tamamlamak, Azure hesabınızda birkaç ABD doları veya daha az bir maliyete neden olur.

Not

Kendi doğrulanmış etki alanımızdan da e-posta gönderebiliriz. E-posta İletişim Hizmeti'ne özel doğrulanmış etki alanları ekleyin.

Önkoşul denetimi

  • Terminalde veya komut penceresinde komutunu çalıştırarak dotnet .NET istemci kitaplığının yüklü olup olmadığını denetleyin.
  • E-posta İletişim Hizmetleri kaynağınızla ilişkili alt etki alanlarını görüntülemek için Azure portalında oturum açın, E-posta İletişim Hizmetleri kaynağınızı bulun ve sol gezinti bölmesinden Etki alanları sağla sekmesini açın.

Yeni bir C# uygulaması oluşturma

Bir konsol penceresinde (cmd, PowerShell veya Bash gibi), adlı EmailQuickstartyeni bir konsol uygulaması oluşturmak için komutunu kullanındotnet new. Bu komut, tek bir kaynak dosyayla basit bir "Merhaba Dünya" C# projesi oluşturur: Program.cs.

dotnet new console -o EmailQuickstart

Dizininizi yeni oluşturulan uygulama klasörüne değiştirin ve komutunu kullanarak dotnet build uygulamanızı derleyin.

cd EmailQuickstart
dotnet build

paketini yükleyin

Uygulama dizinindeyken komutunu kullanarak .NET paketi için Azure İletişim Hizmetleri E-posta istemci kitaplığını dotnet add package yükleyin.

dotnet add package Azure.Communication.Email

Kimlik doğrulaması ile e-posta istemcisi oluşturma

Program.cs açın ve mevcut kodu aşağıdakiyle değiştirerek ad alanını ve programınızın yürütülmesi için bir başlangıç noktası ekleme Azure.Communication.Email yönergelerini ekleyinusing.


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

    }
  }
}

E-posta istemcisinin kimliğini doğrulamak için kullanabileceğim birkaç farklı seçenek vardır:

Program.cs bir metin düzenleyicisinde açın ve bağlantı dizesi ile başlatmak EmailClient için yönteminin Main gövdesini kodla değiştirin. Aşağıdaki kod, adlı COMMUNICATION_SERVICES_CONNECTION_STRINGbir ortam değişkeninden kaynağın bağlantı dizesi alır. Kaynağınızın bağlantı dizesi yönetmeyi öğrenin.

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

Ekleri olan bir e-posta iletisi gönderme

EmailAttachment nesnesi tanımlayıp EmailMessage nesnemize ekleyerek ek ekleyebiliriz. Ek dosyasını okuyun ve Base64 kullanarak kodlayın.


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

komutunu kullanarak dotnet run uygulamayı uygulama dizininizden çalıştırın.

dotnet run

İzin verilen MIME türleri

E-posta ekleri için kabul edilebilir MIME türleri hakkında daha fazla bilgi için izin verilen MIME türleri belgelerine bakın.

Örnek kod

Bu eylemi gösteren örnek uygulamayı GitHub'dan indirebilirsiniz

E-posta iletileri göndermek için İletişim Hizmetleri JS E-posta istemci kitaplığını kullanarak Azure İletişim Hizmetleri kullanmaya başlayın.

İpucu

Doğrudan GitHub'da Temel E-posta Gönderme ve Gelişmiş E-posta Gönderme örnek koduna atlayarak Azure İletişim Hizmetleri ile e-posta gönderme deneyiminizi hemen başlatın.

E-posta nesne modelini anlama

Aşağıdaki sınıflar ve arabirimler, JavaScript için Azure İletişim Hizmetleri E-posta İstemcisi kitaplığının bazı önemli özelliklerini işler.

Veri Akışı Adı Açıklama
EmailAddress Bu sınıf bir e-posta adresi ve görünen ad seçeneği içerir.
EmailAttachment Bu sınıf benzersiz bir kimlik, e-posta eki MIME tür dizesi, içerik için ikili veriler ve bunu satır içi ek olarak tanımlamak için isteğe bağlı bir içerik kimliği kabul ederek bir e-posta eki oluşturur.
EmailClient Bu sınıf tüm e-posta işlevleri için gereklidir. bağlantı dizesi örneği oluşturur ve e-posta iletileri göndermek için kullanırsınız.
EmailClientOptions Bu sınıf, belirli bir API sürümünü hedeflemek için EmailClient örneğine eklenebilir.
EmailContent Bu sınıf, e-posta iletisinin konusunu ve gövdesini içerir. Düz Metin veya Html içeriğinden en az birini belirtmeniz gerekir.
EmailCustomHeader Bu sınıf, özel üst bilgi için ad ve değer çiftinin eklenmesine olanak tanır. E-postanın önemi bu üst bilgiler aracılığıyla 'x-priority' veya 'x-msmail-priority' üst bilgi adı kullanılarak da belirtilebilir.
EmailMessage Bu sınıf göndereni, içeriği ve alıcıları birleştirir. İsteğe bağlı olarak özel üst bilgiler, ekler ve yanıtla e-posta adresleri de eklenebilir.
EmailRecipients Bu sınıf, BILGI ve Gizli alıcıları için isteğe bağlı listeler de dahil olmak üzere e-posta iletisinin alıcıları için EmailAddress nesnelerinin listelerini tutar.
EmailSendResult Bu sınıf, e-posta gönderme işleminin sonuçlarını tutar. İşlem kimliği, işlem durumu ve hata nesnesi (varsa) vardır.
EmailSendStatus Bu sınıf, e-posta gönderme işleminin durum kümesini temsil eder.

EmailSendResult, gerçekleştirilen e-posta işleminde aşağıdaki durumu döndürür.

Durum Adı Açıklama
isStarted E-posta gönderme işlemi şu anda devam ediyor ve işleniyorsa true döndürür.
isCompleted E-posta gönderme işlemi hatasız tamamlandıysa ve e-posta teslim için dışarıdaysa true döndürür. Bu aşamanın ötesinde e-posta teslimi hakkında ayrıntılı durum, Azure İzleyici veya Azure Event Grid aracılığıyla alınabilir. E-posta olaylarına abone olmayı öğrenin
result E-posta gönderme işlemi tamamlandıysa var olan özellik.
hata E-posta gönderme işlemi başarılı olmazsa ve bir hatayla karşılaştıysa var olan özellik. E-posta gönderilmedi. Sonuç, hatanın nedeni hakkında daha fazla ayrıntı içeren bir hata nesnesi içerir.

Önkoşullar

Bu hızlı başlangıcı tamamlamak, Azure hesabınızda birkaç ABD doları veya daha az bir maliyete neden olur.

Not

Kendi doğrulanmış etki alanımızdan da e-posta gönderebiliriz. E-posta İletişim Hizmeti'ne özel doğrulanmış etki alanları ekleyin.

Önkoşul denetimi

  • Terminalde veya komut penceresinde Node.js yüklenip yüklenmediğini denetlemek için komutunu çalıştırın node --version .
  • E-posta İletişim Hizmetleri kaynağınızla doğrulanan etki alanlarını görüntülemek için Azure portalında oturum açın, E-posta İletişim Hizmetleri kaynağınızı bulun ve sol gezinti bölmesinden Etki alanları sağla sekmesini açın.

Uygulama ortamını ayarlama

Yeni Node.js Uygulaması oluşturma

İlk olarak terminalinizi veya komut pencerenizi açın, uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin.

mkdir email-quickstart && cd email-quickstart

Varsayılan ayarlarla bir package.json dosyası oluşturmak için komutunu çalıştırınnpm init -y.

npm init -y

Proje kök dizininde send-email.js adlı bir dosya oluşturmak için bir metin düzenleyicisi kullanın. package.json içindeki "main" özelliğini "send-email.js" olarak değiştirin. Aşağıdaki bölümde, bu hızlı başlangıcın kaynak kodunun yeni oluşturulan dosyaya nasıl ekleneceği gösterilmektedir.

paketini yükleyin

npm install JavaScript için Azure İletişim Hizmetleri E-posta istemci kitaplığını yüklemek için komutunu kullanın.

npm install @azure/communication-email --save

seçeneği--save, kitaplığı package.json dosyanızda bağımlılık olarak listeler.

Kimlik doğrulaması ile e-posta istemcisi oluşturma

E-posta istemcisinin kimliğini doğrulamak için kullanabileceğim birkaç farklı seçenek vardır:

İstemci kitaplığından EmailClient'ı içeri aktarın ve bağlantı dizesi örneği oluşturun.

Aşağıdaki kod, dotenv paketini kullanarak adlı COMMUNICATION_SERVICES_CONNECTION_STRING bir ortam değişkeninden kaynağın bağlantı dizesi alır. npm install dotenv paketini yüklemek için komutunu kullanın. Kaynağınızın bağlantı dizesi yönetmeyi öğrenin.

npm install dotenv

send-email.js aşağıdaki kodu ekleyin:

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

Kolaylık olması için bu hızlı başlangıçta bağlantı dizesi kullanılır, ancak üretim ortamlarında hizmet sorumlularının kullanılmasını öneririz.

Ekleri olan bir e-posta iletisi gönderme

Ek nesnesi tanımlayıp iletimize ekleyerek ek ekleyebiliriz. Ek dosyasını okuyun ve Base64 kullanarak kodlayın.

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

İzin verilen MIME türleri

E-posta ekleri için kabul edilebilir MIME türleri hakkında daha fazla bilgi için izin verilen MIME türleri belgelerine bakın.

Örnek kod

Bu eylemi gösteren örnek uygulamayı GitHub'dan indirebilirsiniz

E-posta iletileri göndermek için İletişim Hizmetleri Java E-posta SDK'sını kullanarak Azure İletişim Hizmetleri kullanmaya başlayın.

İpucu

Doğrudan GitHub'da Temel E-posta Gönderme ve Gelişmiş E-posta Gönderme örnek koduna atlayarak Azure İletişim Hizmetleri ile e-posta gönderme deneyiminizi hemen başlatın.

E-posta nesne modelini anlama

Aşağıdaki sınıflar ve arabirimler Python için Azure İletişim Hizmetleri E-posta SDK'sının bazı önemli özelliklerini işler.

Veri Akışı Adı Açıklama
EmailAddress Bu sınıf bir e-posta adresi ve görünen ad seçeneği içerir.
EmailAttachment Bu arabirim, benzersiz bir kimlik, e-posta eki MIME tür dizesi, bir içerik bayt dizesi ve bunu satır içi ek olarak tanımlamak için isteğe bağlı bir içerik kimliği kabul ederek bir e-posta eki oluşturur.
EmailClient Bu sınıf tüm e-posta işlevleri için gereklidir. bağlantı dizesi örneği oluşturur ve e-posta iletileri göndermek için kullanırsınız.
EmailMessage Bu sınıf göndereni, içeriği ve alıcıları birleştirir. İsteğe bağlı olarak özel üst bilgiler, ekler ve yanıtla e-posta adresleri de eklenebilir.
EmailSendResult Bu sınıf, e-posta gönderme işleminin sonuçlarını tutar. İşlem kimliği, işlem durumu ve hata nesnesi (varsa) vardır.
EmailSendStatus Bu sınıf, e-posta gönderme işleminin durum kümesini temsil eder.

EmailSendResult, gerçekleştirilen e-posta işleminde aşağıdaki durumu döndürür.

Durum Adı Açıklama
NOT_STARTED Bu durum şu anda hizmetimizden gönderilmiyor.
IN_PROGRESS E-posta gönderme işlemi şu anda devam ediyor ve işleniyor.
SUCCESSFULLY_COMPLETED E-posta gönderme işlemi hatasız tamamlandı ve e-posta teslim edilmek üzere dışarıda. Bu aşamanın ötesinde e-posta teslimi hakkında ayrıntılı durum, Azure İzleyici veya Azure Event Grid aracılığıyla alınabilir. E-posta olaylarına abone olmayı öğrenin
BAŞARISIZ OLDU E-posta gönderme işlemi başarılı olmadı ve bir hatayla karşılaştı. E-posta gönderilmedi. Sonuç, hatanın nedeni hakkında daha fazla ayrıntı içeren bir hata nesnesi içerir.

Önkoşullar

Bu hızlı başlangıcı tamamladığınızda Azure hesabınıza birkaç sentlik (ABD doları cinsinden) veya daha düşük bir ücret yansıtılır.

Not

Ayrıca kendi doğrulanmış etki alanımızdan e-posta gönderebiliriz. E-posta İletişim Hizmeti'ne özel doğrulanmış etki alanları ekleyin.

Önkoşul denetimi

  • Bir terminalde veya komut penceresinde Maven'in yüklü olup olmadığını denetlemek için komutunu çalıştırın mvn -v .
  • E-posta İletişim Hizmetleri kaynağınızla doğrulanan etki alanlarını görüntülemek için Azure portalında oturum açın. E-posta İletişim Hizmetleri kaynağınızı bulun ve sol gezinti bölmesinden Etki alanları sağla sekmesini açın.

Uygulama ortamını ayarlama

E-posta göndermek üzere bir ortam ayarlamak için aşağıdaki bölümlerde yer alan adımları izleyin.

Yeni java uygulaması oluşturma

Terminalinizi veya komut pencerenizi açın ve Java uygulamanızı oluşturmak istediğiniz dizine gidin. Maven-archetype-quickstart şablonundan Java projesi oluşturmak için aşağıdaki komutu çalıştırın.

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

Hedef, generate değerle aynı ada artifactId sahip bir dizin oluşturur. Bu dizin altında src /main/java dizini proje kaynak kodunu, src/test/java dizini test kaynağını ve pom.xml dosyası projenin Proje Nesne Modeli'ni (POM) içerir.

paketini yükleyin

metin düzenleyicinizde pom.xml dosyasını açın. Aşağıdaki bağımlılık öğesini bağımlılık grubuna ekleyin.

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

Uygulama çerçevesini ayarlama

Metin düzenleyicisinde /src/main/java/com/communication/quickstart/App.java açın, içeri aktarma yönergeleri ekleyin ve deyimini System.out.println("Hello world!"); kaldırın:

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

Kimlik doğrulaması ile e-posta istemcisi oluşturma

E-posta istemcisinin kimliğini doğrulamak için kullanabileceğim birkaç farklı seçenek vardır:

bir istemcinin kimliğini doğrulamak için bağlantı dizesi örneği oluşturursunuzEmailClient. Kaynağınızın bağlantı dizesi yönetmeyi öğrenin. İstemciyi, arabirimini uygulayan com.azure.core.http.HttpClient herhangi bir özel HTTP istemcisiyle de başlatabilirsiniz.

İstemci örneği oluşturmak için yöntemine main aşağıdaki kodu ekleyin:

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

Kolaylık olması için bu hızlı başlangıçta bağlantı dizesi kullanılır, ancak üretim ortamlarında hizmet sorumlularının kullanılmasını öneririz.

Ekleri olan bir e-posta iletisi gönderme

EmailAttachment nesnesi tanımlayıp EmailMessage nesnemize ekleyerek ek ekleyebiliriz. Ek dosyasını okuyun ve Base64 kullanarak kodlayın.

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

İzin verilen MIME türleri

E-posta ekleri için kabul edilebilir MIME türleri hakkında daha fazla bilgi için izin verilen MIME türleri belgelerine bakın.

Örnek kod

Bu eylemi gösteren örnek uygulamayı GitHub'dan indirebilirsiniz

E-posta iletileri göndermek için İletişim Hizmetleri Python E-posta SDK'sını kullanarak Azure İletişim Hizmetleri kullanmaya başlayın.

İpucu

Doğrudan GitHub'da Temel E-posta Gönderme ve Gelişmiş E-posta Gönderme örnek koduna atlayarak Azure İletişim Hizmetleri ile e-posta gönderme deneyiminizi hemen başlatın.

E-posta nesne modelini anlama

Aşağıdaki JSON ileti şablonu & yanıt nesnesi, Python için Azure İletişim Hizmetleri E-posta SDK'sının bazı önemli özelliklerini gösterir.

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ğerler response.status aşağıdaki tabloda daha ayrıntılı olarak açıklanmıştır.

Durum Adı Açıklama
Devam Ediyor E-posta gönderme işlemi şu anda devam ediyor ve işleniyor.
Başarılı E-posta gönderme işlemi hatasız tamamlandı ve e-posta teslim edilmek üzere dışarıda. Bu aşamanın ötesinde e-posta teslimi hakkında ayrıntılı durum, Azure İzleyici veya Azure Event Grid aracılığıyla alınabilir. E-posta olaylarına abone olmayı öğrenin
Başarısız E-posta gönderme işlemi başarılı olmadı ve bir hatayla karşılaştı. E-posta gönderilmedi. Sonuç, hatanın nedeni hakkında daha fazla ayrıntı içeren bir hata nesnesi içerir.

Önkoşullar

Bu hızlı başlangıcı tamamlamak, Azure hesabınızda birkaç ABD doları veya daha az bir maliyete neden olur.

Not

Kendi doğrulanmış etki alanımızdan da e-posta gönderebiliriz. E-posta İletişim Hizmeti'ne özel doğrulanmış etki alanları ekleyin.

Önkoşul denetimi

  • Terminalde veya komut penceresinde, Python'ın yüklü olup olmadığını denetlemek için komutunu çalıştırın python --version .
  • E-posta İletişim Hizmetleri kaynağınızla doğrulanan etki alanlarını görüntülemek için Azure portalında oturum açın. E-posta İletişim Hizmetleri kaynağınızı bulun ve sol gezinti bölmesinden Etki alanları sağla sekmesini açın.

Uygulama ortamını ayarlama

E-posta göndermek üzere bir ortam ayarlamak için aşağıdaki bölümlerde yer alan adımları izleyin.

Yeni Python uygulaması oluşturma

  1. Terminalinizi veya komut pencerenizi açın. Ardından aşağıdaki komutu kullanarak bir sanal ortam oluşturun ve etkinleştirin. Bu komut uygulamanız için yeni bir dizin oluşturur.

    python -m venv email-quickstart
    
  2. Sanal ortamın kök dizinine gidin ve aşağıdaki komutları kullanarak etkinleştirin.

    cd email-quickstart
    .\Scripts\activate
    
  3. Proje kök dizininde send-email.py adlı bir dosya oluşturmak ve temel özel durum işleme dahil olmak üzere programın yapısını eklemek için bir metin düzenleyicisi kullanın.

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

Aşağıdaki bölümlerde, bu hızlı başlangıcın tüm kaynak kodunu oluşturduğunuz send-email.py dosyasına eklersiniz.

paketini yükleyin

Uygulama dizinindeyken, aşağıdaki komutu kullanarak Python paketi için Azure İletişim Hizmetleri E-posta SDK'sını yükleyin.

pip install azure-communication-email

Kimlik doğrulaması ile e-posta istemcisi oluşturma

E-posta istemcisinin kimliğini doğrulamak için kullanabileceğim birkaç farklı seçenek vardır:

bağlantı dizesi ile bir EmailClient örneği oluşturma. Kaynağınızın bağlantı dizesi yönetmeyi öğrenin.

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

Kolaylık olması için bu hızlı başlangıçta bağlantı dizesi kullanılır, ancak üretim ortamlarında hizmet sorumlularının kullanılmasını öneririz.

Ekleri olan bir e-posta iletisi gönderme

Bir ek tanımlayıp attachment nesnemizin içine attachments ekleyerek ek ekleyebiliriz message . Ek dosyasını okuyun ve Base64 kullanarak kodlayın. Baytların kodunu dize olarak çözerek nesnesine attachment geçirin.

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

İzin verilen MIME türleri

E-posta ekleri için kabul edilebilir MIME türleri hakkında daha fazla bilgi için izin verilen MIME türleri belgelerine bakın.

Örnek kod

Bu eylemi gösteren örnek uygulamayı GitHub'dan indirebilirsiniz

Sorun giderme

E-posta Teslimi

E-posta teslimi ile ilgili sorunları gidermek için, teslim ayrıntılarını yakalamak için e-posta tesliminin durumunu alabilirsiniz.

Önemli

Gönderme işleminin durumu yoklanarak döndürülen başarı sonucu yalnızca e-postanın teslim için başarıyla gönderildiğini doğrular. Teslimin alıcı ucundaki durumu hakkında ek bilgi almak için e-posta olaylarını işlemeye başvurmanız gerekir.

E-posta Azaltma

Uygulamanızın asılı olduğunu görürseniz bunun nedeni e-posta göndermenin kısıtlanması olabilir. Bunu günlüğe kaydetme yoluyla veya özel bir ilke uygulayarak işleyebilirsiniz.

Not

Bu korumalı alan kurulumu, geliştiricilerin uygulamayı oluşturmaya başlamasına yardımcı olmaktır. Uygulama canlı yayına hazır olduğunda aşamalı olarak gönderme hacmini artırma isteğinde bulunabilirsiniz. Hız sınırlarını aşan bir ileti hacmi göndermeniz gerekiyorsa, istediğiniz gönderme sınırını artırmak için bir destek isteği gönderin.

Azure İletişim Hizmeti kaynaklarını temizleme

İletişim Hizmetleri aboneliğini temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler. Kaynakları temizleme hakkında daha fazla bilgi edinin.

Sonraki adımlar

Bu hızlı başlangıçta, Azure İletişim Hizmetleri kullanarak ekleri olan bir e-posta göndermeyi öğrendiniz.

Ayrıca şunları da isteyebilirsiniz: