Aracılığıyla paylaş


Azure İletişim Hizmetleri kullanarak e-posta gönderme

Bu hızlı başlangıçta, E-posta SDK'larımızı kullanarak e-posta gönderme işlemi açıklanmaktadır.

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

Önkoşullar

Bu makaleyi tamamlamak, Azure hesabınızda birkaç ABD senti veya daha az bir maliyete neden olur.

E-postayı Dene'yi kullanarak E-posta Gönderme

E-postayı Deneyin, Azure İletişim Hizmetleri'ni kullanarak istenen alıcılara e-posta göndermeye başlamanıza ve uygulamanızın e-posta gönderme yapılandırmasını doğrulamanıza yardımcı olur. Ayrıca, tercih ettiğiniz dildeki kod parçacığıyla e-posta bildirimi geliştirmenize hızlı bir başlangıç yapmaya yardımcı olur.

Alıcıya ileti göndermek ve iletinin konusunu ve gövdesini belirtmek için:

  1. Sağlanan Azure İletişim Hizmeti kaynağının genel bakış sayfasında, E-posta'nın altındaki sol gezinti panelinde e-postayı deneyin'e tıklayın.

    E-postayı Dene için sol gezinti panelini gösteren ekran görüntüsü.

  2. Açılan listeden doğrulanmış etki alanlarından birini seçin.

    Doğrulanmış etki alanını açılır listede gösteren ekran görüntüsü.

  3. Gönderilecek e-postayı oluşturma.

    • Alıcı e-posta adresini girin
    • Konu Girin
    • E-posta Gövdesini Yazma

    Doğrulanmış e-posta etki alanlarından birini bağlanmak için nasıl filtreleyip seçeceğinizi gösteren ekran görüntüsü.

  4. Gönder'e tıklayın.

    Doğrulanmış e-posta etki alanlarından birinin artık bağlı olduğunu gösteren ekran görüntüsü.

  5. E-posta başarıyla gönderildi.

    Başarılı e-posta göndermeyi gösteren ekran görüntüsü.

  6. Ayrıca örnek kod parçacığını kopyalayarak, bildirim göndermek üzere örnek projenizde kullanılmak üzere bir e-posta gönderebilirsiniz.

    • İstediğiniz dili seçin

    • Bağlantımı Ekle'ye tıklayın

    • Kopyala'ya tıklayın

      E-posta göndermek için kod parçacığını gösteren ekran görüntüsü.

  7. E-posta Kodu Parçacığı artık bildirim projenizde kullanıma hazırdır.

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

Bu makaleyi tamamlamak, Azure hesabınızda birkaç ABD senti veya daha az bir maliyete neden olur.

Önkoşullar

Önkoşul denetimi

  • Terminalde veya komut penceresinde komutunu çalıştırarak az --version Azure CLI ve iletişim uzantısının yüklü olup olmadığını denetleyin.
  • 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.

Kurulum

Uzantıyı ekleme

komutunu kullanarak Azure CLI için Azure İletişim Hizmetleri uzantısını az extension ekleyin.

az extension add --name communication

Azure CLI'da oturum açma

Azure CLI'da oturum açmanız gerekir. Terminalden komutunu çalıştırarak az login ve kimlik bilgilerinizi sağlayarak oturum açabilirsiniz.

Bağlantı dizenizi bir ortam değişkeninde depolayın

Azure CLI anahtar operasyonlarını, bağlantı dizisini iletmek zorunda kalmadan kullanmak için AZURE_COMMUNICATION_CONNECTION_STRING ortam değişkenini --connection_string olarak yapılandırabilirsiniz. Ortam değişkenini yapılandırmak için bir konsol penceresi açın ve aşağıdaki sekmelerden işletim sisteminizi seçin. <connectionString> öğesini gerçek bağlantı dizesi ile değiştirin.

Not

bağlantı dizesi üretim ortamları için şifrelenmemiş ortam değişkeni olarak depolamayın. Bu yöntem yalnızca test amaçlıdır. Üretim ortamları için yeni bağlantı dizeleri oluşturmanız gerekir. bağlantı dizesi şifrelemenizi ve düzenli olarak değiştirmenizi öneririz.

setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"

Ortam değişkenini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenini okuması gereken tüm çalışan programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız, örneği çalıştırmadan önce Visual Studio'yu yeniden başlatın.

E-posta iletisi gönderme

az communication email send
	--connection-string "yourConnectionString"
	--sender "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>"
	--to "<emailalias@emaildomain.com>"
	--subject "Welcome to Azure Communication Services Email" --text "This email message is sent from Azure Communication Services Email using Azure CLI." 

Kodda şu değişiklikleri yapın:

  • <yourConnectionString> değerini bağlantı dizesi ile değiştirin.
  • yerine <emailalias@emaildomain.com> ileti göndermek istediğiniz e-posta adresini yazın.
  • <donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net> değerini, doğrulanmış etki alanınızın MailFrom adresiyle değiştirin.

Bu komut ayrıca üzerinde messageId yoklama gerçekleştirir ve e-posta tesliminin durumunu döndürür. Durum aşağıdaki değerlerden biri olabilir:

Durum Adı Açıklama
Başlamadı Şu anda bu durumu hizmetimiz aracılığıyla göndermiyoruz.
Koşu 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 için 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.

İsteğe bağlı parametreler

Aşağıdaki isteğe bağlı parametreler Azure CLI'da kullanılabilir.

  • --html html e-posta gövdesi yerine --text kullanılabilir.

  • --importance e-postanın önem türünü ayarlar. Bilinen değerler şunlardır: yüksek, normal ve düşük. Varsayılan değer normaldir.

  • --to e-posta alıcılarının listesini ayarlar.

  • --cc karbon kopya e-posta adreslerini ayarlar.

  • --bcc gizli karbon kopya e-posta adreslerini ayarlar.

  • --reply-to Yanıtla e-posta adresini ayarlar.

  • --disable-tracking bu istek için kullanıcı etkileşimi izlemenin devre dışı bırakılması gerekip gerekmediğini gösterir.

  • --attachments e-posta eklerinin listesini ayarlar.

  • --attachment-types , e-posta eki türlerinin listesini aynı ek sırasına göre ayarlar.

--cc ve --bcc gibi --to ile benzer bir alıcı listesi de kullanabilirsiniz. --to veya --cc veya --bcc içinde en az bir alıcı olması gerekir.

E-posta iletileri göndermek için İletişim Hizmetleri C# 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.

İsim Açıklama
E-posta Adresi Bu sınıf bir e-posta adresi ve görünen ad seçeneği içerir.
E-posta eki Bu sınıf, bir e-posta eki oluşturmak için benzersiz bir kimlik, e-posta eklentisine ait MIME türü dizesi, içerik için ikili veriler ve isteğe bağlı olarak bunu satır içi ek olarak tanımlayan bir içerik kimliği kabul eder.
E-posta İstemcisi Bu sınıf tüm e-posta işlevleri için gereklidir. Bağlantı dizesiyle örneğini oluşturursunuz ve e-posta iletileri göndermek için kullanarak kullanırsınız.
E-posta İstemcisi Seçenekleri Bu sınıf, belirli bir API sürümünü hedeflemek için EmailClient örneğine eklenebilir.
E-posta İçeriği 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
E-postaÖzelBaşlık 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
E-posta Mesajı 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ıtlanacak e-posta adresleri de eklenebilir.
E-posta Alıcıları Bu sınıf, CC ve Gizli alıcıları için isteğe bağlı listeler de dahil olmak üzere, e-posta mesajının alıcıları için EmailAddress nesnelerinin listelerini tutar.
EpostaGöndermeİşlemi 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.
E-posta Gönderme Sonucu Bu sınıf, e-posta gönderme işleminin sonuçlarını tutar. İşlem kimliği, işlem durumu ve hata nesnesi (uygun olduğunda) vardır.

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

Çalıştırma Durumu Açıklama
Başlamadı Şu anda bu durumu hizmetimiz aracılığıyla göndermiyoruz.
Koşu E-posta gönderme işlemi şu anda devam ediyor ve işleniyor.
Başarılı E-posta gönderme işlemi hatasız tamamlanır ve e-posta teslim edilmek üzere dışarıdadı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
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 makaleyi tamamlamak, Azure hesabınızda birkaç ABD senti veya daha az bir maliyete neden olur.

Not

Kendi doğrulanmış etki alanımızdan da e-posta gönderebilirsiniz. E-posta İletişim Hizmeti'ne özel onaylanmış alan adları 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ı dotnet newyeni bir konsol uygulaması oluşturmak için komutunu kullanınEmailQuickstart. 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 dosyasını açın ve using ad alanını dahil etmek ve programınızı çalıştırmak için bir başlangıç noktası eklemek üzere Azure.Communication.Email yönergelerini ekleyen aşağıdaki kod ile mevcut kodu değiştirin.

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 dosyasını bir metin düzenleyicisinde açın ve Main yönteminin EmailClient gövdesini, bağlantı dizenizle başlatacak 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ı dizesini 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);

Not

E-posta göndermek için manuel sorgulama (zaman uyumsuz durum sorgulamasıyla e-posta gönderme) kullanılmasını önermiyoruz.

Temel e-posta gönderme

E-posta iletinizi oluşturma

E-posta iletisi göndermek için şunları yapmanız gerekir:

  • E-posta konusunu ve gövdesini tanımlayın.
  • Gönderen Adresinizi tanımlayın. Doğrulanmış etki alanınızdan MailFrom adresinizi içeren Gönderen bilgileriyle e-posta mesajınızı oluşturun.
  • Alıcı Adresini tanımlayın.
  • SendAsync yöntemini çağırın. Bu kodu Program.cs yöntemin Mainsonuna ekleyin:

Alan adı ayrıntılarınızla değiştirin ve içeriği, alıcı ayrıntılarını gerektiğinde düzenleyin.


//Replace with your domain and modify the content, recipient details as required

var subject = "Welcome to Azure Communication Service Email APIs.";
var htmlContent = "<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>";
var sender = "donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net";
var recipient = "emailalias@contoso.com";

E-posta gönderme durumunu al ve gönder

Azure.WaitUntil.Started ile SendAsync'i çağırdığınızda, yönteminiz işlemi başlattıktan sonra geri döner. yöntemi EmailSendOperation nesnesini döndürür. E-posta işlemi durumunu yenilemek için UpdateStatusAsync yöntemini çağırabilirsiniz.

Döndürülen EmailSendOperation nesnesi, aşağıdakileri içeren bir EmailSendStatus nesnesi içerir:

  • E-posta Gönderme işleminin geçerli durumu.
  • Geçerli durum başarısız durumdaysa hata ayrıntılarını içeren bir hata nesnesi.

/// Send the email message with WaitUntil.Started
EmailSendOperation emailSendOperation = await emailClient.SendAsync(
    Azure.WaitUntil.Started,
    sender,
    recipient,
    subject,
    htmlContent);

/// Call UpdateStatus on the email send operation to poll for the status
/// manually.
try
{
    while (true)
    {
        await emailSendOperation.UpdateStatusAsync();
        if (emailSendOperation.HasCompleted)
        {
            break;
        }
        await Task.Delay(100);
    }

    if (emailSendOperation.HasValue)
    {
        Console.WriteLine($"Email queued for delivery. Status = {emailSendOperation.Value.Status}");
    }
}
catch (RequestFailedException ex)
{
    Console.WriteLine($"Email send failed with Code = {ex.ErrorCode} and Message = {ex.Message}");
}

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

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

dotnet run

Örnek kod

Örnek uygulamayı GitHub'dan indirebilirsiniz

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

İpucu

GitHub'da Temel E-posta Gönderme ve Gelişmiş E-posta Gönderme örnek kodunu kullanarak 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 İstemci kitaplığının bazı özelliklerini işler.

İsim Açıklama
E-posta Adresi Bu sınıf bir e-posta adresi ve görünen ad seçeneği içerir.
E-posta eki Bu sınıf, benzersiz bir kimlik, e-posta eki MIME türü dizesi, içerik için ikili veriler ve bunu gömülü ek olarak tanımlamak için isteğe bağlı bir İçerik Kimliği kabul ederek bir e-posta eki oluşturur.
E-posta İstemcisi Bu sınıf tüm e-posta işlevleri için gereklidir. Bağlantı dizesiyle örneğini oluşturursunuz ve e-posta iletileri göndermek için kullanarak kullanırsınız.
E-posta İstemcisi Seçenekleri Bu sınıf, belirli bir API sürümünü hedeflemek için EmailClient örneğine eklenebilir.
E-posta İçeriği 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.
E-postaÖzelBaşlık Bu sınıf, özel üst bilgi için ad ve değer çiftinin eklenmesine olanak tanır. E-postanın önemi, üst bilgi adı x-priority veya x-msmail-prioritykullanılarak bu üst bilgiler aracılığıyla da belirtilebilir.
E-posta Mesajı 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ıtlanacak e-posta adresleri de eklenebilir.
E-posta Alıcıları Bu sınıf, CC ve Gizli alıcıları için isteğe bağlı listeler de dahil olmak üzere, e-posta mesajının alıcıları için EmailAddress nesnelerinin listelerini tutar.
E-posta Gönderme Sonucu Bu sınıf, e-posta gönderme işleminin sonuçlarını tutar. İşlem kimliği, işlem durumu ve hata nesnesi (uygun olduğunda) vardır.
E-postaGönderimDurumu 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
Başlatıldı mı E-posta gönderme işlemi şu anda devam ediyorsa ve işleniyorsa true döndürür.
tamamlandı E-posta gönderme işlemi hatasız tamamlandıysa ve e-posta teslim edilmeye hazırsa doğru değerini 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
sonuç E-posta gönderme işlemi sona eriyorsa 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 makaleyi tamamlamak, Azure hesabınızda birkaç ABD senti veya daha az bir maliyete neden olur.

Not

Kendi doğrulanmış etki alanımızdan da e-posta gönderebilirsiniz. E-posta İletişim Hizmeti'ne özel onaylanmış alan adları 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. Ardından uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin.

mkdir email-quickstart && cd email-quickstart

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

npm init -y

Proje kök dizininde adlı send-email.js bir dosya oluşturmak için bir metin düzenleyicisi kullanın. main içindeki package.json özelliğini send-email.js değiştirin. Aşağıdaki bölümde, bu makalenin 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

--save seçeneği, package.json dosyanızda kütüphaneyi bir 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ı dizenizle örnekleyin.

Dotenv paketi aracılığıyla adlı COMMUNICATION_SERVICES_CONNECTION_STRING bir ortam değişkeninden kaynağın bağlantı dizesini almak için aşağıdaki kodu kullanın. npm install dotenv paketini yüklemek için komutunu kullanın. Kaynağınızın bağlantı dizesini yönetmeyi öğrenin.

npm install dotenv

Aşağıdaki kodu send-email.js dosyasına 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 makalede bağlantı dizeleri kullanılır, ancak üretim ortamlarında hizmet sorumlularının kullanılması önerilir.

Temel e-posta gönderme

E-posta iletisi gönderme

E-posta iletisi göndermek için beginSendEmailClient işlevini çağırın. Bu yöntem, işlemin durumunu denetleyen ve tamamlandıktan sonra sonucu alan bir poller döndürür.


async function main() {
  const POLLER_WAIT_TIME = 10
  try {
    const message = {
      senderAddress: "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>",
      content: {
        subject: "Welcome to Azure Communication Services Email",
        plainText: "This email message is sent from Azure Communication Services Email using the JavaScript SDK.",
      },
      recipients: {
        to: [
          {
            address: "<emailalias@emaildomain.com>",
            displayName: "Customer Name",
          },
        ],
      },
    };

    const poller = await emailClient.beginSend(message);

    if (!poller.getOperationState().isStarted) {
      throw "Poller was not started."
    }

    let timeElapsed = 0;
    while(!poller.isDone()) {
      poller.poll();
      console.log("Email send polling in progress");

      await new Promise(resolve => setTimeout(resolve, POLLER_WAIT_TIME * 1000));
      timeElapsed += 10;

      if(timeElapsed > 18 * POLLER_WAIT_TIME) {
        throw "Polling timed out.";
      }
    }

    if(poller.getResult().status === KnownEmailSendStatus.Succeeded) {
      console.log(`Successfully sent the email (operation id: ${poller.getResult().id})`);
    }
    else {
      throw poller.getResult().error;
    }
  } catch (e) {
    console.log(e);
  }
}

main();

Kodda şu değişiklikleri yapın:

  • yerine <emailalias@emaildomain.com> ileti göndermek istediğiniz e-posta adresini yazın.
  • <donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net> değerini, doğrulanmış etki alanınızın MailFrom adresiyle değiştirin.

Kodu çalıştırma

Dosyaya eklediğiniz send-email.js kodu çalıştırmak için node komutunu kullanın.

node ./send-email.js

Örnek kod

Örnek uygulamayı GitHub Azure Örnekleri JavaScript için E-posta Gönder'den 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

GitHub'da Temel E-posta Gönderme ve Gelişmiş E-posta Gönderme örnek kodunu kullanarak 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, Java için Azure İletişim Hizmetleri E-posta SDK'sının bazı önemli özelliklerini işler.

İsim Açıklama
E-posta Adresi Bu sınıf bir e-posta adresi ve görünen ad seçeneği içerir.
E-posta eki Bu arabirim, benzersiz bir kimlik, e-posta eki MIME türü dizesi, bir içerik bayt dizesi ve isteğe bağlı bir içerik kimliği kabul ederek, bunu satır içi bir ek olarak tanımlayan bir e-posta eki oluşturur.
E-posta İstemcisi Bu sınıf tüm e-posta işlevleri için gereklidir. Bağlantı dizesiyle örneğini oluşturursunuz ve e-posta iletileri göndermek için kullanarak kullanırsınız.
E-posta Mesajı 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ıtlanacak e-posta adresleri de eklenebilir.
E-posta Gönderme Sonucu Bu sınıf, e-posta gönderme işleminin sonuçlarını tutar. İşlem kimliği, işlem durumu ve hata nesnesi (uygun olduğunda) vardır.
E-postaGönderimDurumu 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
BAŞLAMADI Şu anda bu durumu hizmetimiz aracılığıyla göndermiyoruz.
DEVAM_EDİYOR E-posta gönderme işlemi şu anda devam ediyor ve işleniyor.
BAŞARIYLA_TAMAMLANDI E-posta gönderme işlemi hatasız tamamlandı ve e-posta teslim için 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 makaleyi tamamlamak, Azure hesabınızda birkaç ABD senti veya daha az bir maliyete neden olur.

Not

Ayrıca kendi doğrulanmış etki alanımızdan e-posta gönderebilir , E-posta İletişim Hizmeti kaynaklarını oluşturup yönetebilirsiniz.

Ö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 panelinden 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"

generate amacı, artifactId değerle aynı ada 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

pom.xml Dosyayı metin düzenleyicinizde 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.*;

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 birkaç farklı seçenek vardır.

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

Eşzamanlı bir istemci örneği oluşturmak için yöntem main içine 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();

Zaman uyumsuz bir istemcinin örneğini 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>";

EmailAsyncClient emailClient = new EmailClientBuilder()
    .connectionString(connectionString)
    .buildAsyncClient();

Kolaylık olması için bu makalede bağlantı dizeleri kullanılır, ancak üretim ortamlarında hizmet sorumlularının kullanılması önerilir.

Temel e-posta gönderme

SDK'daki nesneyi kullanarak EmailMessage bir e-posta iletisi oluşturabilirsiniz.

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

Kodda şu değişiklikleri yapın:

  • yerine <emailalias@emaildomain.com> ileti göndermek istediğiniz e-posta adresini yazın.
  • <donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net> değerini, doğrulanmış etki alanınızın MailFrom adresiyle değiştirin.

E-posta iletisini göndermek için beginSend'den EmailClient işlevini çağırın.

Eşitleme istemcisinde çağırma beginSend işlemi durumunu denetlemek ve tamamlandığında sonucu almak için kullanılabilecek bir SyncPoller nesne döndürür. Bir e-posta gönderme isteği, beginSend yöntemi çağrılır çağrılmaz başlar. E-posta göndermek uzun süre çalışan bir işlemdir. Poller üzerindeki getFinalResult() yönteminin, bir terminal durumuna (SUCCESSFULLY_COMPLETED veya FAILED) ulaşılana kadar engelleme işlemi olduğunu unutmayın. Aşağıdaki örnekte gösterildiği gibi uygulama gereksinimlerinize uygun bir aralıkta el ile yoklama yapmanızı öneririz.

try
{
    SyncPoller<EmailSendResult, EmailSendResult> poller = emailClient.beginSend(message, null); // This will send out the initial request to send an email

    PollResponse<EmailSendResult> pollResponse = null;

    Duration timeElapsed = Duration.ofSeconds(0);
    Duration POLLER_WAIT_TIME = Duration.ofSeconds(10);

    // Polling is done manually to avoid blocking the application in case of an error
    while (pollResponse == null
            || pollResponse.getStatus() == LongRunningOperationStatus.NOT_STARTED
            || pollResponse.getStatus() == LongRunningOperationStatus.IN_PROGRESS)
    {
        pollResponse = poller.poll();
        // The operation ID can be retrieved as soon as .poll() is called on the poller
        System.out.println("Email send poller status: " + pollResponse.getStatus() + ", operation id: " + pollResponse.getValue().getId());

        Thread.sleep(POLLER_WAIT_TIME.toMillis());
        timeElapsed = timeElapsed.plus(POLLER_WAIT_TIME);

        if (timeElapsed.compareTo(POLLER_WAIT_TIME.multipliedBy(18)) >= 0)
        {
            throw new RuntimeException("Polling timed out.");
        }
    }

    if (poller.getFinalResult().getStatus() == EmailSendStatus.SUCCEEDED)
    {
        System.out.printf("Successfully sent the email (operation id: %s)", poller.getFinalResult().getId());
    }
    else
    {
        throw new RuntimeException(poller.getFinalResult().getError().getMessage());
    }
}
catch (Exception exception)
{
    System.out.println(exception.getMessage());
}

Kodu çalıştırma

  1. Dosyayı içeren dizine pom.xml gidin ve mvn komutunu kullanarak projeyi derleyin.

    mvn compile
    
  2. Paketi oluşturun.

    mvn package
    
  3. Uygulamayı başlatmak için aşağıdaki mvn komutu çalıştırın.

    mvn exec:java -D"exec.mainClass"="com.communication.quickstart.App" -D"exec.cleanupDaemonThreads"="false"
    

Örnek kod

Örnek uygulamayı GitHub Azure Örnekleri Java için E-posta Gönder'den 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": [
        {
            "contentInBase64": "str",  # Base64 encoded contents of the attachment. Required.
            "contentType": "str",  # MIME type of the content being attached. Required.
            "name": "str"  # Name of the attachment. Required.
        }
    ],
    "userEngagementTrackingDisabled": bool,  # Optional. Indicates whether user engagement tracking should be disabled for this request if the resource-level user engagement tracking setting was already enabled in the control plane.
    "headers": {
        "str": "str"  # Optional. Custom email headers to be passed.
    },
    "replyTo": [
        {
            "address": "str",  # Email address. Required.
            "displayName": "str"  # Optional. Email display name.
        }
    ]
}

response = {
    "id": "str",  # The unique id of the operation. Uses a UUID. Required.
    "status": "str",  # Status of operation. Required. Known values are:
        "NotStarted", "Running", "Succeeded", and "Failed".
    "error": {
        "additionalInfo": [
            {
                "info": {},  # Optional. The additional info.
                "type": "str"  # Optional. The additional info type.
            }
        ],
        "code": "str",  # Optional. The error code.
        "details": [
            ...
        ],
        "message": "str",  # Optional. The error message.
        "target": "str"  # Optional. The error target.
    }
}

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 için 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 makaleyi tamamlamak, Azure hesabınızda birkaç ABD senti 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 onaylanmış alan adları 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:

bir bağlantı dizesi ile bir EmailClient örneği oluşturun. Kaynağınızın bağlantı dizesini 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 makalede bağlantı dizeleri kullanılır, ancak üretim ortamlarında hizmet sorumlularının kullanılması önerilir.

Temel e-posta gönderme

E-posta iletisi gönderme

E-posta iletisi göndermek için şunları yapmanız gerekir:

  • İletiyi aşağıdaki değerlerle oluşturma:
    • senderAddress: E-posta İletişim Hizmetleri Kaynağınıza bağlı etki alanının genel bakış panelindeki MailFrom alanında bulunan geçerli bir gönderen e-posta adresi.
    • recipients: E-posta alıcılarının listesinin ve isteğe bağlı olarak CC ve Gizli e-posta alıcılarının listesini içeren bir nesne.
    • content: Bir e-posta iletisinin konusunu ve isteğe bağlı olarak düz metin veya HTML içeriğini içeren bir nesne.
  • İşlemin begin_send sonucunu döndüren yöntemini çağırın.
message = {
    "content": {
        "subject": "This is the subject",
        "plainText": "This is the body",
        "html": "<html><h1>This is the body</h1></html>"
    },
    "recipients": {
        "to": [
            {
                "address": "<emailalias@emaildomain.com>",
                "displayName": "Customer Name"
            }
        ]
    },
    "senderAddress": "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>"
}

poller = email_client.begin_send(message)
print("Result: " + poller.result())

Kodda şu değişiklikleri yapın:

  • yerine <emailalias@emaildomain.com> ileti göndermek istediğiniz e-posta adresini yazın.
  • <donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net> değerini, doğrulanmış etki alanınızın MailFrom adresiyle değiştirin.

E-posta tesliminin durumunu alma

EmailClient begin_send yönteminden döndürülen işlem durumu nesnesi üzerinde bir döngü ayarlayarak e-posta tesliminin durumunu yoklayabiliriz:

POLLER_WAIT_TIME = 10

try:
    email_client = EmailClient.from_connection_string(connection_string)

    poller = email_client.begin_send(message);

    time_elapsed = 0
    while not poller.done():
        print("Email send poller status: " + poller.status())

        poller.wait(POLLER_WAIT_TIME)
        time_elapsed += POLLER_WAIT_TIME

        if time_elapsed > 18 * POLLER_WAIT_TIME:
            raise RuntimeError("Polling timed out.")

    if poller.result()["status"] == "Succeeded":
        print(f"Successfully sent the email (operation id: {poller.result()['id']})")
    else:
        raise RuntimeError(str(poller.result()["error"]))

except Exception as ex:
    print(ex)

Kodu çalıştırma

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

python send-email.py

Örnek kod

Örnek uygulamayı GitHub Azure Örnekleri Python için e-posta gönder'den indirebilirsiniz

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı veya ücretsiz bir Azure hesabı oluşturun.

  • Etkin bir Azure İletişim Hizmetleri kaynağı veya bir İletişim Hizmetleri kaynağı oluşturun.

  • Etkin bir Azure Logic Apps kaynağı (mantıksal uygulama) ve iş akışı ya da kullanmak istediğiniz tetikleyiciyle yeni bir mantıksal uygulama kaynağı ve iş akışı oluşturun. Şu anda Azure İletişim Hizmetleri E-posta bağlayıcısı yalnızca eylemler sağladığından mantıksal uygulama iş akışınız en azından bir tetikleyici gerektirir. Tüketim veya Standart mantıksal uygulama kaynağı oluşturabilirsiniz.

  • Yapılandırılmış bir etki alanına veya özel etki alanına sahip bir Azure İletişim Hizmetleri E-posta kaynağı.

  • Azure E-posta etki alanına bağlı bir Azure İletişim Hizmetleri kaynağı.

E-posta gönderme

Azure İletişim Hizmetleri E-posta bağlayıcısını kullanarak iş akışınıza yeni bir adım eklemek için şu adımları izleyin:

  1. Tasarımcıda logik uygulamanızın iş akışını açın.

    Tüketim

    1. Yeni eylemi eklemek istediğiniz adımın altında Yeni adım'ı seçin. Alternatif olarak, adımlar arasına yeni eylem eklemek için işaretçinizi bu adımlar arasındaki oka getirin, artı işaretini (+) seçin ve Eylem ekle'yi seçin.

    2. İşlem seçin arama kutusunun altında Premium'u seçin. Arama kutusuna Azure İletişim E-postası girin.

    3. Eylemler listesinden E-posta gönder'i seçin.

      Azure İletişim Hizmetleri E-posta bağlayıcısı E-posta gönder eylemini gösteren ekran görüntüsü.

    Standart

    1. Yeni eylemi eklemek istediğiniz adımın altında artı işaretini ()+ seçin. Alternatif olarak, adımlar arasına yeni eylem eklemek için işaretçinizi bu adımlar arasındaki oka getirin, artı işaretini (+) seçin ve Eylem ekle'yi seçin.

    2. Bir eylem ekle arama kutusunun altında çalışma zamanı açılır listesinden Premium'u seçin. Arama kutusuna Azure İletişim E-postası girin.

    3. Eylemler listesinden E-posta gönder'i seçin.

  2. Bağlantı için bir ad belirtin.

  3. Azure Communications Service kaynağınız için bağlantı dizesi girin. Bu dizeyi bulmak için şu adımları izleyin:

    1. Azure portalında Azure İletişim Hizmeti kaynağınızı açın.

    2. Kaynak menüsünde Ayarlar altında Anahtarlar'ı seçin ve bağlantı dizesini kopyalayın.

      Azure İletişim Hizmetleri Bağlantı Dizesini gösteren ekran görüntüsü.

  4. Bitirdiğinizde Oluştur'u seçin.

  5. Kimden alanında, önkoşullarda yapılandırdığınız e-posta adresini kullanın. Alıcının E-posta Adresi, Konu ve Gövde alanlarına ilişkin değerleri girin, örneğin:

    Azure İletişim Hizmetleri E-posta bağlayıcısı E-posta gönder eylem girişini gösteren ekran görüntüsü.

  6. İş akışınızı kaydedin. Tasarımcı araç çubuğunda Kaydet'i seçin.

İş akışınızı test etme

Tüketim veya Standart iş akışına sahip olmanıza bağlı olarak iş akışınızı el ile başlatın:

  • Kullanım: Tasarımcı araç çubuğunda Tetikleyiciyi Çalıştır>Çalıştır seçin.
  • Standart: İş akışı menüsünde Genel Bakış'ı seçin. Araç çubuğunda Tetikleyiciyi Çalıştır>Çalıştır'ı seçin.

İş akışı bir kullanıcı oluşturur, bu kullanıcı için bir erişim belirteci oluşturur, ardından kullanıcıyı kaldırır ve siler. İş akışı başarıyla çalıştırıldıktan sonra bu eylemlerin çıkışlarını de kontrol edebilirsiniz.

Belirtilen adreste bir e-posta almalısınız. Ayrıca, E-posta gönder eylemi aracılığıyla gönderdiğiniz e-postaların durumunu denetlemek için E-posta iletisi durumunu al eylemini de kullanabilirsiniz. Daha fazla eylem için Azure İletişim Hizmetleri E-posta bağlayıcısı başvuru belgelerini gözden geçirin.

İş akışı kaynaklarını temizleme

Mantıksal uygulama kaynağınızı, iş akışınızı ve ilgili kaynaklarınızı temizlemek için Tüketim mantıksal uygulama kaynaklarını temizlemeyi veya Standart mantıksal uygulama kaynaklarını temizlemeyi gözden geçirin.

E-posta iletileri göndermek için Azure PowerShell iletişim modülünü kullanarak Azure İletişim Hizmetleri'ni kullanmaya başlayın.

Bu makaleyi tamamlamak, Azure hesabınızda birkaç ABD senti veya daha az bir maliyete neden olur.

Önkoşullar

Önkoşul denetimi

  • Windows PowerShell'de, iletişim modülünün Get-Module -ListAvailable -Name Az.Communication yüklü olup olmadığını denetlemek için komutunu çalıştırın.
  • 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 panelinden Etki alanları sağla sekmesini açın.

Kurulum

İletişim modülünü yükleme

komutunu kullanarak Azure PowerShell için Azure İletişim Hizmetleri modülünü Install-Module -Name Az.Communication yükleyin.

Install-Module -Name Az.Communication

İletişim modülünü Get-Command -Module Az.Communication yükledikten sonra, tüm iletişim modüllerini almak için komutunu çalıştırın.

Get-Command -Module Az.Communication

E-posta iletisi gönderme

E-posta iletisini yalnızca gerekli alanlara sahip bir veya daha fazla alıcıya gönderilecek şekilde kuyruğa alın.

$emailRecipientTo = @(
   @{
        Address = "<emailalias@emaildomain.com>"
        DisplayName = "Email DisplayName"
    }
)

$message = @{
    ContentSubject = "Test Email"
    RecipientTo = @($emailRecipientTo)  # Array of email address objects
    SenderAddress = '<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>'   
    ContentPlainText = "This is the first email from ACS - Azure PowerShell"    
}

Send-AzEmailServicedataEmail -Message $Message -endpoint "<yourEndpoint>"

Kodda şu değişiklikleri yapın:

  • '<yourEndpoint>' ifadesini uç noktanızla değiştirin.
  • yerine <emailalias@emaildomain.com> ileti göndermek istediğiniz e-posta adresini yazın.
  • <donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net> değerini, doğrulanmış etki alanınızın MailFrom adresiyle değiştirin.

E-posta iletisini tüm alanlarla birlikte bir veya daha fazla alıcıya gönderilecek şekilde kuyruğa alın.

$emailRecipientTo = @(
   @{
        Address = "<emailalias@emaildomain.com>"
        DisplayName = "Email DisplayName"
    },
   @{
        Address = "<emailalias1@emaildomain.com>"
        DisplayName = "Email DisplayName"
    }
)

$fileBytes1 = [System.IO.File]::ReadAllBytes("<file path>")

$fileBytes2 = [System.IO.File]::ReadAllBytes("<image file path>")

$emailAttachment = @(
    @{
        ContentInBase64 = $fileBytes1
        ContentType = "<text/plain>"
        Name = "<test.txt>"
    },
    @{
        ContentInBase64 = $fileBytes2
        ContentType = "<image/png>"
        Name = "<inline-attachment.png>"
        contentId = "<inline-attachment>"
    }
)

$headers = @{
    "Key1" = "Value1"
    "Key2" = "Value2"
    "Importance" = "high"
}

$emailRecipientBcc = @(
   @{
        Address = "<emailbccalias@emaildomain.com>"
        DisplayName = "Email DisplayName"
    }
)

$emailRecipientCc = @(
   @{
        Address = "<emailccalias@emaildomain.com>"
        DisplayName = "Email DisplayName"
    }
)

$emailRecipientReplyTo = @(
   @{
        Address = "<emailreplytoalias@emaildomain.com>"
        DisplayName = "Email DisplayName"
    }
)

$message = @{
    ContentSubject = "Test Email"
    RecipientTo = @($emailRecipientTo)  # Array of email address objects
    SenderAddress = '<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>'
    Attachment = @($emailAttachment) # Array of attachments
    ContentHtml = "<html><head><title>Enter title</title></head><body><img src='cid:inline-attachment' alt='Company Logo'/><h1>This is the first email from ACS - Azure PowerShell</h1></body></html>"
    ContentPlainText = "This is the first email from ACS - Azure PowerShell"
    Header = $headers  # Importance = high/medium/low or X-Priority = 2/3/4  
    RecipientBcc = @($emailRecipientBcc) # Array of email address objects
    RecipientCc = @($emailRecipientCc) # Array of email address objects
    ReplyTo = @($emailRecipientReplyTo) # Array of email address objects
    UserEngagementTrackingDisabled = $true
}

Send-AzEmailServicedataEmail -Message $Message -endpoint "<yourEndpoint>"

Kodda şu değişiklikleri yapın:

  • '<yourEndpoint>' ifadesini uç noktanızla değiştirin.
  • yerine <emailalias@emaildomain.com> and <emailalias1@emaildomain.com> ileti göndermek istediğiniz e-posta adreslerini girin.
  • <file path> and <image file path>, göndermek istediğiniz eklerin gerçek dosya yolları ile değiştirin.
  • Ekleriniz için uygun içerik türleriyle <text/plain> and <image/png> öğesini değiştirin.
  • "<test.txt> and <inline-attachment.png>" etiketini eklerinizin dosya adlarıyla değiştirin.
  • <inline-attachment> ile satır içi ekinizin Content-ID değerini değiştirin.
  • <emailbccalias@emaildomain.com> yerine iletinizin Gizli alıcı olarak gönderilmesini istediğiniz e-posta adresini yazın.
  • <emailccalias@emaildomain.com>'yi iletide CC olarak göndermek istediğiniz e-posta adresiyle değiştirin.
  • yerine <emailreplytoalias@emaildomain.com> yanıtların gönderilmesini istediğiniz e-posta adresini yazın.
  • <donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net> değerini, doğrulanmış etki alanınızın MailFrom adresiyle değiştirin.

İsteğe bağlı parametreler

Aşağıdaki isteğe bağlı parametreler Azure PowerShell'de kullanılabilir.

  • ContentHtml e-postanın HTML gövdesini belirtmek için kullanılabilir.

  • ContentPlainText e-postanın düz metin gövdesini belirtmek için kullanılır.

  • Attachment e-posta eklerinin listesini ayarlar. Bu parametre, dosya yolları veya ek nesneleri dizisini kabul eder. Hem normal hem de satır içi ekler dahil olmak üzere e-posta isteğinin toplam boyutunu 10 MB ile sınırlandırıyoruz.

  • Header özel e-posta üst bilgilerini geçirmek ve e-posta önem düzeyini (yüksek, normal veya düşük) ayarlamak için.

  • RecipientBcc BCC alanı için alıcı dizisi.

  • RecipientCc CC alanı için alıcı dizisi.

  • ReplyTo alıcıların yanıtlarının gönderildiği e-posta adresleri dizisi.

  • UserEngagementTrackingDisabled , kaynak düzeyi kullanıcı katılımı izleme ayarı denetim düzleminde zaten etkinleştirildiyse, bu istek için kullanıcı etkileşimi izlemenin devre dışı bırakılması gerekip gerekmediğini gösterir.

RecipientCc ve RecipientBcc gibi RecipientTo ile benzer bir alıcı listesi de kullanabilirsiniz. RecipientTo veya RecipientCc veya RecipientBcc içinde en az bir alıcı olması gerekir.

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. Alıcı ucundaki teslimin durumu hakkında daha fazla bilgi için bkz. E-posta olaylarını işleme.

E-posta gönderim hızı sınırlaması

Uygulamanız kilitleniyorsa, bunun nedeni e-posta göndermenin kısıtlanması olabilir. Katman sınırlarını günlüğe kaydetme yoluyla veya özel bir ilke uygulayarak işleyebilirsiniz.

Not

Bu korumalı alan, geliştiricilerin uygulamayı oluşturmaya başlamasına yardımcı olmak için tasarlanmıştı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 için kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubu silindiğinde ilişkili diğer kaynaklar da silinir. Kaynakları temizleme hakkında daha fazla bilgi edinin.

Sonraki adımlar

Bu makalede, Azure İletişim Hizmetleri kullanarak e-posta gönderme açıklanmaktadır. Aşağıdakileri de yapabilirsiniz: