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
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- İşletim sisteminiz için en son sürüm .NET Core istemci kitaplığı .
- Sağlanan etki alanıyla oluşturulan ve hazır olan bir Azure E-posta İletişim Hizmetleri Kaynağı E-posta İletişim Kaynağı Oluşturmaya Başlama
- E-posta Etki Alanı ve Bağlantı Dizesi ile bağlantılı etkin bir İletişim Hizmetleri kaynağı. İletişim Kaynağı ile E-posta Kaynağını Bağlayarak Çalışmaya Başlama
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ı EmailQuickstart
yeni 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_STRING
bir 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
- Node.js (~14).
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Sağlanan etki alanıyla oluşturulan ve hazır olan bir Azure E-posta İletişim Hizmetleri kaynağı. E-posta İletişim Kaynağı oluşturmaya başlayın.
- E-posta Etki Alanına ve bağlantı dizesi bağlı etkin bir Azure İletişim Hizmetleri kaynağı. Azure İletişim Kaynağı ile e-posta İletişim Kaynağı bağlayarak başlayın.
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
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Java Development Kit (JDK) sürüm 8 veya üzeri.
- Apache Maven.
- Dağıtılmış bir İletişim Hizmetleri kaynağı ve bağlantı dizesi. Ayrıntılar için bkz . İletişim Hizmetleri kaynağı oluşturma.
- E-posta göndermeye başlamak için bir Azure E-posta İletişim Hizmetleri kaynağı oluşturun.
- Geliştirme ortamı için bir kurulum yönetilen kimliği, bkz. Yönetilen kimlikle erişimi yetkilendirme.
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
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Python 3.7+.
- Sağlanan etki alanıyla oluşturulan ve hazır olan bir Azure E-posta İletişim Hizmetleri kaynağı. E-posta İletişim Kaynağı oluşturmaya başlayın.
- E-posta Etki Alanına ve bağlantı dizesi bağlı etkin bir Azure İletişim Hizmetleri kaynağı. Azure İletişim Kaynağı ile e-posta İletişim Kaynağı bağlayarak başlayın.
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
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
Sanal ortamın kök dizinine gidin ve aşağıdaki komutları kullanarak etkinleştirin.
cd email-quickstart .\Scripts\activate
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:
- E-posta durumunu el ile yoklamayı öğrenin
- Birden çok alıcıya e-posta gönderme hakkında daha fazla bilgi edinin
- E-posta istemci kitaplığı hakkında bilgi edinin