Mulai cepat: Cara mengirim email menggunakan Azure Communication Services
Catatan
Harap bagikan pemikiran dan umpan balik Anda tentang Azure Communication Services dengan kami dengan mengambil survei singkat ini.
Mulai cepat ini menjelaskan cara mengirim email menggunakan SDK Email kami.
Mulai menggunakan Azure Communication Services dengan menggunakan Communication Services Coba Email untuk mengirim pesan Email.
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Versi terbaru dari .NET Core client library untuk sistem operasi Anda.
- Sumber Daya Azure Email Communication Services dibuat dan siap digunakan dengan domain yang tersedia Memulai dengan Membuat Sumber Daya Email Communication
- Sumber daya Communication Services aktif yang tersambung dengan Domain Email. Memulai dengan Menghubungkan Sumber Daya Email dengan Sumber Daya Communication
Menyelesaikan mulai cepat ini dikenakan biaya kecil kurang lebih sebanyak beberapa sen USD di akun Azure Anda.
Mengirim Email menggunakan Coba Email
Coba Email membantu Anda mulai mengirim email ke penerima yang diinginkan menggunakan Azure Communication Services, serta memverifikasi konfigurasi aplikasi Anda untuk mengirim email. Ini juga membantu memulai pengembangan pemberitahuan email Anda dengan cuplikan kode dalam pilihan bahasa pilihan Anda.
Untuk mengirim pesan ke penerima, dan untuk menentukan subjek dan isi pesan,
Dari halaman gambaran umum sumber daya Azure Communication Service yang disediakan, klik Coba Email di panel navigasi kiri di bawah Email.
Pilih salah satu domain terverifikasi dari menu drop-down.
Buat email yang akan dikirim
- Masukkan Alamat email penerima
- Masukkan Subjek
- Menulis Isi Email
Klik Kirim
Email Berhasil Dikirim.
Sekarang Anda juga dapat menyalin sampel Cuplikan Kode untuk mengirim email yang akan digunakan dalam proyek sampel Anda untuk mengirim pemberitahuan.
Cuplikan Kode Email sekarang siap digunakan dalam proyek pemberitahuan Anda.
Mulai menggunakan Azure Communication Services dengan menggunakan ekstensi komunikasi Azure CLI untuk mengirim pesan Email.
Menyelesaikan mulai cepat ini dikenakan biaya kecil kurang lebih sebanyak beberapa sen USD di akun Azure Anda.
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Sumber daya Azure Email Communication Services dibuat dan siap dengan domain yang disediakan. Mulai membuat Sumber Daya Komunikasi Email.
- Sumber daya Azure Communication Services aktif yang tersambung ke Domain Email dan string koneksi nya. Mulailah dengan menyambungkan Sumber Daya Komunikasi Email dengan Sumber Daya Komunikasi Azure.
- Azure CLI terbaru.
Pemeriksaan prasyarat
- Di terminal atau jendela perintah, jalankan
az --version
perintah untuk memeriksa apakah Azure CLI dan ekstensi komunikasi diinstal. - Untuk melihat domain yang diverifikasi dengan sumber daya Email Communication Services Anda, masuk ke portal Azure. Temukan sumber daya Email Communication Services Anda dan buka tab Provisi domain dari panel navigasi kiri.
Menyiapkan
Menambahkan ekstensi
Tambahkan ekstensi Azure Communication Services untuk Azure CLI dengan menggunakan az extension
perintah .
az extension add --name communication
Masuk ke Azure CLI
Anda perlu masuk ke Azure CLI. Anda dapat masuk menjalankan az login
perintah dari terminal dan memberikan kredensial Anda.
Simpan string koneksi Anda dalam variabel lingkungan
Anda dapat mengonfigurasi AZURE_COMMUNICATION_CONNECTION_STRING
variabel lingkungan untuk menggunakan operasi kunci Azure CLI tanpa harus menggunakan --connection_string
untuk meneruskan string koneksi. Untuk mengonfigurasi variabel lingkungan, buka jendela konsol dan pilih sistem operasi Anda dari tab di bawah ini. Ganti <connectionString>
dengan string koneksi aktual Anda.
Catatan
Jangan simpan string koneksi Anda sebagai variabel lingkungan yang tidak terenkripsi untuk lingkungan produksi. Ini dimaksudkan hanya untuk tujuan pengujian. Untuk lingkungan produksi, Anda harus menghasilkan string koneksi baru. Kami mendorong Anda untuk mengenkripsi string koneksi dan mengubahnya secara teratur.
setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"
Setelah Anda menambahkan variabel lingkungan, Anda mungkin perlu menghidupkan ulang program yang sedang berjalan yang perlu membaca variabel lingkungan, termasuk jendela konsol. Misalnya, jika Anda menggunakan Visual Studio sebagai editor, mulai ulang Visual Studio sebelum menjalankan contoh.
Mengirim pesan email
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."
Buat penggantian ini dalam kode:
- Ganti
<yourConnectionString>
dengan string koneksi Anda. - Ganti
<emailalias@emaildomain.com>
dengan alamat email yang ingin Anda kirimi pesan. - Ganti
<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>
dengan alamat MailFrom domain terverifikasi Anda.
Perintah di atas juga melakukan polling pada messageId dan mengembalikan status pengiriman email. Status dapat berupa:
Nama Status | Deskripsi |
---|---|
Belum Dimulai | Saat ini kami tidak mengirim status ini dari layanan kami. |
Sedang berjalan | Operasi pengiriman email saat ini sedang berlangsung dan sedang diproses. |
Berhasil | Operasi pengiriman email telah selesai tanpa kesalahan dan email keluar untuk pengiriman. Setiap status terperinci tentang pengiriman email di luar tahap ini dapat diperoleh baik melalui Azure Monitor atau melalui Azure Event Grid. Pelajari cara berlangganan peristiwa email |
Gagal | Operasi pengiriman email tidak berhasil dan mengalami kesalahan. Email tidak dikirim. Hasilnya berisi objek kesalahan dengan detail lebih lanjut tentang alasan kegagalan. |
Parameter opsional
Parameter opsional berikut tersedia di Azure CLI.
--html
dapat digunakan alih-alih--text
untuk isi email html.--importance
mengatur jenis kepentingan untuk email. Nilai yang diketahui adalah: tinggi, normal, dan rendah. Defaultnya adalah normal.--to
mengatur daftar penerima email.--cc
mengatur alamat email salinan karbon.--bcc
mengatur alamat email salinan karbon buta.--reply-to
mengatur alamat email Balas-Ke.--disable-tracking
menunjukkan apakah pelacakan keterlibatan pengguna harus dinonaktifkan untuk permintaan ini.--attachments
mengatur daftar lampiran email.--attachment-types
mengatur daftar jenis lampiran email, dalam urutan lampiran yang sama.
Selain itu, Anda dapat menggunakan daftar penerima dengan dan --bcc
mirip --to
dengan --cc
. Perlu ada setidaknya satu penerima di --to
atau --cc
atau --bcc
.
Memulai Azure Communication Services dengan menggunakan pustaka klien Email C# Communication Services untuk mengirim pesan Email.
Tip
Mulai langsung pengalaman pengiriman email Anda dengan Azure Communication Services dengan melompat langsung ke kode sampel Pengiriman Email Dasar dan Pengiriman Email Tingkat Lanjut di GitHub.
Memahami model Objek Email
Kelas dan antarmuka berikut menangani beberapa fitur utama dari Pustaka klien Email Azure Communication Services untuk C#.
Nama | Deskripsi |
---|---|
EmailAddress | Kelas ini berisi alamat email dan opsi untuk nama tampilan. |
EmailAttachment | Kelas ini membuat lampiran email dengan menerima ID unik, string jenis MIME lampiran email, dan data biner untuk konten. |
EmailClient | Kelas ini diperlukan untuk semua fungsionalitas email. Anda membuat kelas dengan string koneksi dan menggunakannya untuk mengirim pesan email. |
EmailClientOptions | Kelas ini dapat ditambahkan ke pembuatan EmailClient untuk menargetkan versi API tertentu. |
EmailContent | Kelas ini berisi subjek dan isi pesan email. Anda harus menentukan setidaknya salah satu konten PlainText atau Html |
EmailCustomHeader | Kelas ini memungkinkan penambahan pasangan nama dan nilai untuk header kustom. Kepentingan email juga dapat ditentukan melalui header ini menggunakan nama header 'x-priority' atau 'x-msmail-priority' |
EmailMessage | Kelas ini menggabungkan pengirim, konten, dan penerima. Header kustom, lampiran, dan alamat email balasan juga dapat ditambahkan secara opsional. |
EmailRecipients | Kelas ini menyimpan daftar objek EmailAddress untuk penerima pesan email, termasuk daftar opsional untuk penerima CC & BCC. |
EmailSendOperation | Kelas ini mewakili operasi pengiriman email asinkron dan dikembalikan dari panggilan api pengiriman email. |
EmailSendResult | Kelas ini menyimpan hasil operasi pengiriman email. Ini memiliki ID operasi, status operasi, dan objek kesalahan (jika berlaku). |
EmailSendResult mengembalikan status berikut pada operasi email yang dilakukan.
Keadaan | Deskripsi |
---|---|
Belum Dimulai | Saat ini kami tidak mengirim status ini dari layanan kami. |
Sedang berjalan | Operasi pengiriman email saat ini sedang berlangsung dan sedang diproses. |
Berhasil | Operasi pengiriman email telah selesai tanpa kesalahan dan email keluar untuk pengiriman. Setiap status terperinci tentang pengiriman email di luar tahap ini dapat diperoleh baik melalui Azure Monitor atau melalui Azure Event Grid. Pelajari cara berlangganan peristiwa email |
Gagal | Operasi pengiriman email tidak berhasil dan mengalami kesalahan. Email tidak dikirim. Hasilnya berisi objek kesalahan dengan detail lebih lanjut tentang alasan kegagalan. |
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Versi terbaru dari .NET Core client library untuk sistem operasi Anda.
- Sumber Daya Azure Email Communication Services dibuat dan siap digunakan dengan domain yang tersedia Memulai dengan Membuat Sumber Daya Email Communication
- Sumber daya Communication Services aktif yang terhubung dengan Domain Email dan String Koneksi. Memulai dengan Menghubungkan Sumber Daya Email dengan Sumber Daya Communication
Menyelesaikan mulai cepat ini dikenakan biaya kecil kurang lebih sebanyak beberapa sen USD di akun Azure Anda.
Catatan
Kami juga dapat mengirim email dari domain terverifikasi kami sendiri. Tambahkan domain terverifikasi kustom ke Email Communication Service.
Pemeriksaan prasyarat
- Di jendela terminal atau perintah, jalankan perintah
dotnet
untuk memeriksa apakah .NET SDK telah diinstal. - Untuk melihat subdomain yang terkait dengan sumber daya Communication Services Email Anda, masuk ke portal Microsoft Azure, cari sumber daya Communication Services Email dan buka tab Provisikan domain dari panel navigasi kiri.
Membuat aplikasi C# baru
Di jendela konsol (seperti cmd, PowerShell, atau Bash), gunakan perintah dotnet new
untuk membuat aplikasi konsol baru dengan nama EmailQuickstart
. Perintah ini membuat proyek C# "Halo Dunia" sederhana dengan file sumber tunggal: Program.cs.
dotnet new console -o EmailQuickstart
Ubah direktori Anda ke folder aplikasi yang baru dibuat dan gunakan perintah dotnet build
untuk mengompilasi aplikasi Anda.
cd EmailQuickstart
dotnet build
Pasang paket
Saat masih dalam direktori aplikasi, instal pustaka klien Email Azure Communication Services untuk paket .NET dengan menggunakan perintah dotnet add package
.
dotnet add package Azure.Communication.Email
Membuat klien email dengan autentikasi
Buka Program.cs dan ganti kode yang ada dengan kode berikut untuk menambahkan arahan using
guna menyertakan namespace Azure.Communication.Email
dan titik awal eksekusi program Anda.
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)
{
}
}
}
Ada beberapa opsi berbeda yang tersedia untuk mengautentikasi klien email:
Buka Program.cs di editor teks serta ganti isi metode Main
dengan kode untuk menginisialisasi EmailClient
dengan string koneksi Anda. Kode berikut mengambil string koneksi untuk sumber daya dari variabel lingkungan bernama COMMUNICATION_SERVICES_CONNECTION_STRING
. Pelajari cara mengelola string koneksi sumber daya Anda.
// 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);
Pengiriman email dasar
Membuat pesan email Anda
Untuk mengirim pesan email, Anda perlu:
- Tentukan subjek dan isi email.
- Tentukan Alamat Pengirim Anda. Buat pesan email Anda dengan informasi Pengirim, Anda mendapatkan alamat MailFrom dari domain terverifikasi Anda.
- Tentukan Alamat Penerima.
- Panggil metode SendAsync. Tambahkan kode ini pada akhir metode
Main
di Program.cs:
Mengganti dengan detail domain Anda dan ubah konten, detail penerima sesuai kebutuhan
//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";
Mengirim dan mendapatkan status pengiriman email
Untuk mengirim pesan email, Anda perlu:
- Panggil metode SendAsync yang mengirim permintaan email sebagai operasi asinkron. Panggilan dengan Azure.WaitUntil.Completed jika metode Anda harus menunggu untuk kembali hingga operasi jangka panjang selesai pada layanan. Hubungi dengan Azure.WaitUntil.Started jika metode Anda harus kembali setelah memulai operasi.
- Metode SendAsync mengembalikan EmailSendOperation yang mengembalikan EmailSendStatus "Berhasil" jika email keluar untuk pengiriman dan melempar pengecualian sebaliknya. Tambahkan kode ini pada akhir metode
Main
di Program.cs:
try
{
Console.WriteLine("Sending email...");
EmailSendOperation emailSendOperation = await emailClient.SendAsync(
Azure.WaitUntil.Completed,
sender,
recipient,
subject,
htmlContent);
EmailSendResult statusMonitor = emailSendOperation.Value;
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}");
}
Mendapatkan status pengiriman email
EmailSendOperation hanya mengembalikan status operasi email. Untuk mendapatkan status pengiriman email aktual, Anda dapat berlangganan acara "EmailDeliveryReportReceived" yang dihasilkan saat pengiriman email selesai. Peristiwa mengembalikan status pengiriman berikut:
- Disampaikan.
- Gagal.
- Dikarantina.
Lihat Menangani Peristiwa Email untuk detailnya.
Anda juga sekarang dapat berlangganan log Operasional Email yang menyediakan informasi terkait metrik pengiriman untuk pesan yang dikirim dari layanan Email.
- Log operasional Email Kirim Email - menyediakan informasi terperinci yang terkait dengan layanan Email yang mengirim permintaan email.
- Log operasional Pembaruan Status Email - menyediakan pembaruan status pengiriman tingkat pesan dan penerima yang terkait dengan layanan Email mengirim permintaan email.
Akses log untuk Layanan Komunikasi Email.
Menjalankan kode
Menjalankan aplikasi dari direktori aplikasi Anda dengan perintah dotnet run
.
dotnet run
Kode Sampel
Anda dapat mengunduh aplikasi contoh dari GitHub
Memulai Azure Communication Services dengan menggunakan pustaka klien Email Communication Services JS untuk mengirim pesan Email.
Tip
Mulai langsung pengalaman pengiriman email Anda dengan Azure Communication Services dengan melompat langsung ke kode sampel Pengiriman Email Dasar dan Pengiriman Email Tingkat Lanjut di GitHub.
Memahami model objek email
Kelas dan antarmuka berikut menangani beberapa fitur utama dari Pustaka klien Email Azure Communication Services untuk JavaScript.
Nama | Deskripsi |
---|---|
EmailAddress | Kelas ini berisi alamat email dan opsi untuk nama tampilan. |
EmailAttachment | Kelas ini membuat lampiran email dengan menerima ID unik, string jenis MIME lampiran email, dan data biner untuk konten. |
EmailClient | Kelas ini diperlukan untuk semua fungsionalitas email. Anda membuat kelas dengan string koneksi dan menggunakannya untuk mengirim pesan email. |
EmailClientOptions | Kelas ini dapat ditambahkan ke pembuatan EmailClient untuk menargetkan versi API tertentu. |
EmailContent | Kelas ini berisi subjek dan isi pesan email. Anda harus menentukan setidaknya salah satu konten PlainText atau Html. |
EmailCustomHeader | Kelas ini memungkinkan penambahan pasangan nama dan nilai untuk header kustom. Kepentingan email juga dapat ditentukan melalui header ini menggunakan nama header 'x-priority' atau 'x-msmail-priority'. |
EmailMessage | Kelas ini menggabungkan pengirim, konten, dan penerima. Header kustom, lampiran, dan alamat email balasan juga dapat ditambahkan secara opsional. |
EmailRecipients | Kelas ini menyimpan daftar objek EmailAddress untuk penerima pesan email, termasuk daftar opsional untuk penerima CC & BCC. |
EmailSendResult | Kelas ini menyimpan hasil operasi pengiriman email. Ini memiliki ID operasi, status operasi, dan objek kesalahan (jika berlaku). |
EmailSendStatus | Kelas ini mewakili sekumpulan status operasi pengiriman email. |
EmailSendResult mengembalikan status berikut pada operasi email yang dilakukan.
Nama Status | Deskripsi |
---|---|
isStarted | Mengembalikan true jika operasi pengiriman email saat ini sedang berlangsung dan sedang diproses. |
isCompleted | Mengembalikan true jika operasi pengiriman email telah selesai tanpa kesalahan dan email keluar untuk pengiriman. Setiap status terperinci tentang pengiriman email di luar tahap ini dapat diperoleh baik melalui Azure Monitor atau melalui Azure Event Grid. Pelajari cara berlangganan peristiwa email |
hasil | Properti yang ada jika operasi pengiriman email telah disimpulkan. |
kesalahan | Properti yang ada jika operasi pengiriman email tidak berhasil dan mengalami kesalahan. Email tidak dikirim. Hasilnya berisi objek kesalahan dengan detail lebih lanjut tentang alasan kegagalan. |
Prasyarat
- Node.js (~14).
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Sumber daya Azure Email Communication Services dibuat dan siap dengan domain yang disediakan. Mulai membuat Sumber Daya Komunikasi Email.
- Sumber daya Azure Communication Services aktif yang tersambung ke Domain Email dan string koneksi nya. Mulailah dengan menyambungkan Sumber Daya Komunikasi Email dengan Sumber Daya Komunikasi Azure.
Menyelesaikan mulai cepat ini dikenakan biaya kecil kurang lebih sebanyak beberapa sen USD di akun Azure Anda.
Catatan
Kami juga dapat mengirim email dari domain terverifikasi kami sendiri. Tambahkan domain terverifikasi kustom ke Email Communication Service.
Pemeriksaan prasyarat
- Di terminal atau jendela perintah, jalankan
node --version
untuk memeriksa apakah Node.js sudah dipasang. - Untuk melihat domain yang diverifikasi dengan sumber daya Communication Services Email Anda, masuk ke portal Microsoft Azure, temukan sumber daya Communication Services Email Anda, dan buka tab Provisikan domain dari panel navigasi kiri.
Menyiapkan lingkungan aplikasi
Membuat aplikasi Node.js baru
Pertama, buka jendela perintah atau terminal, buat direktori baru untuk aplikasi Anda, dan arahkan ke sana.
mkdir email-quickstart && cd email-quickstart
Jalankan npm init -y
untuk membuat file package.json dengan pengaturan default.
npm init -y
Gunakan editor teks untuk membuat file bernama send-email.js di direktori root proyek. Ubah properti "main" di package.json menjadi "send-email.js". Bagian berikut menunjukkan cara menambahkan kode sumber untuk mulai cepat ini ke file yang baru dibuat.
Pasang paket
Gunakan perintah npm install
untuk menginstal pustaka klien Email Azure Communication Services untuk JavaScript.
npm install @azure/communication-email --save
Opsi --save
mencantumkan pustaka sebagai dependensi di file package.json Anda.
Membuat klien email dengan autentikasi
Ada beberapa opsi berbeda yang tersedia untuk mengautentikasi klien email:
Impor EmailClient dari pustaka klien dan buat EmailClient dengan string koneksi Anda.
Kode berikut mengambil string koneksi untuk sumber daya dari variabel lingkungan bernama COMMUNICATION_SERVICES_CONNECTION_STRING
menggunakan paket dotenv. Gunakan perintah npm install
untuk menginstal paket dotenv. Pelajari cara mengelola string koneksi sumber daya Anda.
npm install dotenv
Tambahkan kode berikut ke send-email.js:
const { EmailClient } = require("@azure/communication-email");
require("dotenv").config();
// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];
const emailClient = new EmailClient(connectionString);
Untuk kesederhanaan, mulai cepat ini menggunakan string koneksi, tetapi di lingkungan produksi, sebaiknya gunakan perwakilan layanan.
Pengiriman email dasar
Mengirim pesan email
Untuk mengirim pesan email, panggil beginSend
fungsi dari EmailClient. Metode ini mengembalikan poller yang memeriksa status operasi dan mengambil hasil setelah selesai.
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();
Buat penggantian ini dalam kode:
- Ganti
<emailalias@emaildomain.com>
dengan alamat email yang ingin Anda kirimi pesan. - Ganti
<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>
dengan alamat MailFrom domain terverifikasi Anda.
Menjalankan kode
gunakan perintah node untuk menjalankan kode yang Anda tambahkan ke file send-email.js.
node ./send-email.js
Kode Sampel
Anda dapat mengunduh aplikasi contoh dari GitHub
Mulai menggunakan Azure Communication Services dengan menggunakan SDK Email Java Communication Services untuk mengirim pesan Email.
Tip
Mulai langsung pengalaman pengiriman email Anda dengan Azure Communication Services dengan melompat langsung ke kode sampel Pengiriman Email Dasar dan Pengiriman Email Tingkat Lanjut di GitHub.
Memahami model objek email
Kelas dan antarmuka berikut menangani beberapa fitur utama SDK Email Azure Communication Services untuk Python.
Nama | Deskripsi |
---|---|
EmailAddress | Kelas ini berisi alamat email dan opsi untuk nama tampilan. |
EmailAttachment | Antarmuka ini membuat lampiran email dengan menerima ID unik, string jenis MIME lampiran email, dan string byte konten. |
EmailClient | Kelas ini diperlukan untuk semua fungsionalitas email. Anda membuat kelas dengan string koneksi dan menggunakannya untuk mengirim pesan email. |
EmailMessage | Kelas ini menggabungkan pengirim, konten, dan penerima. Header kustom, lampiran, dan alamat email balasan juga dapat ditambahkan secara opsional. |
EmailSendResult | Kelas ini menyimpan hasil operasi pengiriman email. Ini memiliki ID operasi, status operasi, dan objek kesalahan (jika berlaku). |
EmailSendStatus | Kelas ini mewakili sekumpulan status operasi pengiriman email. |
EmailSendResult mengembalikan status berikut pada operasi email yang dilakukan.
Nama Status | Deskripsi |
---|---|
NOT_STARTED | Saat ini kami tidak mengirim status ini dari layanan kami. |
SEDANG_BERLANGSUNG | Operasi pengiriman email saat ini sedang berlangsung dan sedang diproses. |
SUCCESSFULLY_COMPLETED | Operasi pengiriman email telah selesai tanpa kesalahan dan email keluar untuk pengiriman. Setiap status terperinci tentang pengiriman email di luar tahap ini dapat diperoleh baik melalui Azure Monitor atau melalui Azure Event Grid. Pelajari cara berlangganan peristiwa email |
FAILED | Operasi pengiriman email tidak berhasil dan mengalami kesalahan. Email tidak dikirim. Hasilnya berisi objek kesalahan dengan detail lebih lanjut tentang alasan kegagalan. |
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Java Development Kit (JDK) versi 8 atau lebih tinggi.
- Apache Maven.
- Sumber daya Communication Services yang disebarkan dan string koneksi. Untuk detailnya, lihat Membuat sumber daya Communication Services.
- Buat sumber daya Azure Email Communication Services untuk mulai mengirim email.
- Penyiapan identitas terkelola untuk lingkungan pengembangan, lihat Mengotorisasi akses dengan identitas terkelola.
Menyelesaikan panduan mulai cepat ini dikenakan biaya kecil berupa beberapa sen USD atau kurang di akun Azure Anda.
Catatan
Kami juga dapat mengirim email dari domain terverifikasi kami sendiri Menambahkan domain terverifikasi kustom ke Email Communication Service.
Pemeriksaan prasyarat
- Di terminal atau jendela perintah, jalankan
mvn -v
untuk memeriksa apakah Maven diinstal. - Untuk melihat domain yang diverifikasi dengan sumber daya Email Communication Services Anda, masuk ke portal Azure. Temukan sumber daya Email Communication Services Anda dan buka tab Provisi domain dari panel navigasi kiri.
Menyiapkan lingkungan aplikasi
Untuk menyiapkan lingkungan untuk mengirim email, lakukan langkah-langkah di bagian berikut.
Membuat aplikasi Java baru
Buka terminal atau jendela perintah Anda dan arahkan ke direktori tempat Anda ingin membuat aplikasi Java. Jalankan perintah berikut untuk menghasilkan proyek Java dari templat maven-archetype-quickstart.
mvn archetype:generate -DarchetypeArtifactId="maven-archetype-quickstart" -DarchetypeGroupId="org.apache.maven.archetypes" -DarchetypeVersion="1.4" -DgroupId="com.communication.quickstart" -DartifactId="communication-quickstart"
Tujuannya generate
membuat direktori dengan nama artifactId
yang sama dengan nilai . Di bawah direktori ini, direktori src/main/java berisi kode sumber proyek, direktori src/test/java berisi sumber pengujian, dan file pom.xml adalah Project Object Model (POM) proyek.
Pasang paket
Buka file pom.xml di editor teks Anda. Tambahkan elemen dependensi berikut ke grup dependensi.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-email</artifactId>
<version>1.0.0-beta.2</version>
</dependency>
Menyiapkan kerangka kerja aplikasi
Buka /src/main/java/com/communication/quickstart/App.java di editor teks, tambahkan arahan impor, dan hapus System.out.println("Hello world!");
pernyataan:
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.
}
}
Membuat klien email dengan autentikasi
Ada beberapa opsi berbeda yang tersedia untuk mengautentikasi klien email.
Untuk mengautentikasi klien, Anda membuat instans EmailClient
dengan string koneksi Anda. Pelajari cara mengelola string koneksi sumber daya Anda. Anda juga dapat menginisialisasi klien dengan klien HTTP kustom apa pun yang mengimplementasikan com.azure.core.http.HttpClient
antarmuka.
Untuk membuat instans klien sinkron, tambahkan kode berikut ke main
metode :
// 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();
Untuk membuat instans klien asinkron, tambahkan kode berikut ke main
metode :
// 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();
Untuk kesederhanaan, mulai cepat ini menggunakan string koneksi, tetapi di lingkungan produksi, sebaiknya gunakan perwakilan layanan.
Pengiriman email dasar
Pesan email dapat dibuat menggunakan EmailMessage
objek di SDK.
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.");
Buat penggantian ini dalam kode:
- Ganti
<emailalias@emaildomain.com>
dengan alamat email yang ingin Anda kirimi pesan. - Ganti
<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>
dengan alamat MailFrom domain terverifikasi Anda.
Untuk mengirim pesan email, panggil beginSend
fungsi dari EmailClient
.
Memanggil beginSend
klien sinkronisasi mengembalikan SyncPoller
objek, yang dapat digunakan untuk memeriksa status operasi dan mengambil hasilnya setelah selesai. Perhatikan bahwa permintaan awal untuk mengirim email akan dikirim segera setelah metode dipanggil beginSend
. Mengirim email adalah operasi jangka panjang. Penting untuk dicatat bahwa getFinalResult()
metode pada poller adalah operasi pemblokiran sampai status terminal (SUCCESSFULLY_COMPLETED
atau FAILED
) tercapai. Metode yang disarankan adalah melakukan polling manual pada interval yang sesuai untuk kebutuhan aplikasi Anda seperti yang ditunjukkan dalam sampel di bawah ini.
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();
System.out.println("Email send poller status: " + pollResponse.getStatus());
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());
}
Menjalankan kode
Navigasi ke direktori yang berisi file pom.xml dan kompilasi proyek dengan menggunakan
mvn
perintah .mvn compile
Buat paket.
mvn package
Jalankan perintah
mvn
berikut untuk menjalankan aplikasi.mvn exec:java -D"exec.mainClass"="com.communication.quickstart.App" -D"exec.cleanupDaemonThreads"="false"
Kode Sampel
Anda dapat mengunduh aplikasi contoh dari GitHub
Mulai menggunakan Azure Communication Services dengan menggunakan Communication Services Python Email SDK untuk mengirim pesan Email.
Tip
Mulai langsung pengalaman pengiriman email Anda dengan Azure Communication Services dengan melompat langsung ke kode sampel Pengiriman Email Dasar dan Pengiriman Email Tingkat Lanjut di GitHub.
Memahami model objek email
Templat pesan JSON berikut & objek respons menunjukkan beberapa fitur utama SDK Email Azure Communication Services untuk Python.
message = {
"content": {
"subject": "str", # Subject of the email message. Required.
"html": "str", # Optional. Html version of the email message.
"plainText": "str" # Optional. Plain text version of the email
message.
},
"recipients": {
"to": [
{
"address": "str", # Email address. Required.
"displayName": "str" # Optional. Email display name.
}
],
"bcc": [
{
"address": "str", # Email address. Required.
"displayName": "str" # Optional. Email display name.
}
],
"cc": [
{
"address": "str", # Email address. Required.
"displayName": "str" # Optional. Email display name.
}
]
},
"senderAddress": "str", # Sender email address from a verified domain. Required.
"attachments": [
{
"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.
}
}
Nilai response.status
dijelaskan lebih lanjut dalam tabel berikut.
Nama Status | Deskripsi |
---|---|
SedangBerlangsung | Operasi pengiriman email saat ini sedang berlangsung dan sedang diproses. |
Berhasil | Operasi pengiriman email telah selesai tanpa kesalahan dan email keluar untuk pengiriman. Setiap status terperinci tentang pengiriman email di luar tahap ini dapat diperoleh baik melalui Azure Monitor atau melalui Azure Event Grid. Pelajari cara berlangganan peristiwa email |
Gagal | Operasi pengiriman email tidak berhasil dan mengalami kesalahan. Email tidak dikirim. Hasilnya berisi objek kesalahan dengan detail lebih lanjut tentang alasan kegagalan. |
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Python 3.7+.
- Sumber daya Azure Email Communication Services dibuat dan siap dengan domain yang disediakan. Mulai membuat Sumber Daya Komunikasi Email.
- Sumber daya Azure Communication Services aktif yang tersambung ke Domain Email dan string koneksi nya. Mulailah dengan menyambungkan Sumber Daya Komunikasi Email dengan Sumber Daya Komunikasi Azure.
Menyelesaikan mulai cepat ini dikenakan biaya kecil kurang lebih sebanyak beberapa sen USD di akun Azure Anda.
Catatan
Kami juga dapat mengirim email dari domain terverifikasi kami sendiri. Tambahkan domain terverifikasi kustom ke Email Communication Service.
Pemeriksaan prasyarat
- Di terminal atau jendela perintah, jalankan perintah
python --version
untuk memeriksa apakah Python dipasang. - Untuk melihat domain yang diverifikasi dengan sumber daya Email Communication Services Anda, masuk ke portal Azure. Temukan sumber daya Email Communication Services Anda dan buka tab Provisi domain dari panel navigasi kiri.
Menyiapkan lingkungan aplikasi
Untuk menyiapkan lingkungan untuk mengirim email, lakukan langkah-langkah di bagian berikut.
Membuat aplikasi Python baru
Buka jendela perintah atau terminal Anda. Kemudian gunakan perintah berikut untuk membuat lingkungan virtual dan mengaktifkannya. Perintah ini membuat direktori baru untuk aplikasi Anda.
python -m venv email-quickstart
Navigasikan ke direktori akar lingkungan virtual dan aktifkan menggunakan perintah berikut.
cd email-quickstart .\Scripts\activate
Gunakan editor teks untuk membuat file yang disebut send-email.py di direktori akar proyek dan menambahkan struktur untuk program, termasuk penanganan pengecualian dasar.
import os from azure.communication.email import EmailClient try: # Quickstart code goes here. except Exception as ex: print('Exception:') print(ex)
Di bagian berikut, Anda menambahkan semua kode sumber untuk mulai cepat ini ke file send-email.py yang Anda buat.
Pasang paket
Saat masih berada di direktori aplikasi, instal paket SDK Email Azure Communication Services untuk Python dengan menggunakan perintah berikut.
pip install azure-communication-email
Membuat klien email dengan autentikasi
Ada beberapa opsi berbeda yang tersedia untuk mengautentikasi klien email:
Buat instans EmailClient dengan string koneksi Anda. Pelajari cara mengelola string koneksi sumber daya Anda.
# Create the EmailClient object that you use to send Email messages.
email_client = EmailClient.from_connection_string(<connection_string>)
Untuk kesederhanaan, mulai cepat ini menggunakan string koneksi, tetapi di lingkungan produksi, sebaiknya gunakan perwakilan layanan.
Pengiriman email dasar
Mengirim pesan email
Untuk mengirim pesan email, Anda perlu:
- Buat pesan dengan nilai berikut:
senderAddress
: Alamat email pengirim yang valid, ditemukan di bidang MailFrom di panel gambaran umum domain yang ditautkan ke Sumber Daya Email Communication Services Anda.recipients
: Objek dengan daftar penerima email, dan secara opsional, daftar penerima email CC & BCC.content
: Objek yang berisi subjek, dan secara opsional konten teks biasa atau HTML, dari pesan email.
- Panggil metode begin_send, yang mengembalikan hasil operasi.
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())
Buat penggantian ini dalam kode:
- Ganti
<emailalias@emaildomain.com>
dengan alamat email yang ingin Anda kirimi pesan. - Ganti
<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>
dengan alamat MailFrom domain terverifikasi Anda.
Mendapatkan status pengiriman email
Kita dapat melakukan polling untuk status pengiriman email dengan mengatur perulangan pada objek status operasi yang dikembalikan dari metode EmailClient begin_send
:
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)
Menjalankan kode
Menjalankan aplikasi dari direktori aplikasi Anda dengan perintah python
.
python send-email.py
Kode Sampel
Anda dapat mengunduh aplikasi contoh dari GitHub
Prasyarat
Akun Azure dengan langganan aktif, atau buat akun secara gratis.
Sumber daya Azure Communication Services aktif, atau buat sumber daya Communication Services.
Sumber daya Azure Logic Apps aktif (aplikasi logika) dan alur kerja, atau buat sumber daya dan alur kerja aplikasi logika baru dengan pemicu yang ingin Anda gunakan. Saat ini, konektor Email Azure Communication Services hanya menyediakan tindakan, sehingga alur kerja aplikasi logika Anda memerlukan pemicu, minimal. Anda dapat membuat sumber daya aplikasi logika Konsumsi atau Standar .
Sumber daya Email Azure Communication Services dengan domain atau domain kustom yang dikonfigurasi.
Sumber daya Azure Communication Services yang tersambung dengan domain Azure Email.
Kirim email
Untuk menambahkan langkah baru ke alur kerja Anda dengan menggunakan konektor Email Azure Communication Services, ikuti langkah-langkah berikut:
Di perancang, buka alur kerja aplikasi logika Anda.
Consumption
Di bawah langkah di mana Anda ingin menambahkan tindakan baru, pilih Langkah baru. Atau, untuk menambahkan tindakan baru di antara langkah-langkah, pindahkan penunjuk Anda ke panah di antara langkah-langkah tersebut, pilih tanda plus (+), dan pilih Tambahkan tindakan.
Di bawah kotak pencarian Pilih operasi , pilih Standar. Dalam kotak pencarian, masukkan Email Communication Services.
Dari daftar tindakan, pilih Kirim email.
Standard
Di bawah langkah di mana Anda ingin menambahkan tindakan baru, pilih tanda plus (+). Atau, untuk menambahkan tindakan baru di antara langkah-langkah, pindahkan penunjuk Anda ke panah di antara langkah-langkah tersebut, pilih tanda plus (+), dan pilih Tambahkan tindakan.
Di bagian kotak telusur Pilih operasi, pilih Azure. Dalam kotak pencarian, masukkan Email Communication Services.
Dari daftar tindakan, pilih Kirim email.
Masukkan nama untuk koneksi.
Masukkan string koneksi untuk sumber daya Azure Communications Service Anda. Untuk menemukan string ini, ikuti langkah-langkah berikut:
Di portal Azure, buka sumber daya Azure Communication Service Anda.
Pada menu sumber daya, di bawah Pengaturan, pilih Kunci, dan salin string koneksi.
Jika sudah selesai, pilih Buat.
Di bidang Dari, gunakan alamat email yang Anda konfigurasi dalam prasyarat. Masukkan nilai untuk bidang Kepada, Subjek, dan Isi , misalnya:
Simpan alur kerja Anda. Di bar alat perancang, pilih Simpan.
Menguji alur kerja
Berdasarkan apakah Anda memiliki alur kerja Konsumsi atau Standar, mulai alur kerja Anda secara manual:
- Konsumsi: Pada toolbar perancang, pilih Jalankan Eksekusi Pemicu>.
- Standar: Pada menu alur kerja, pilih Gambaran Umum. Pada toolbar, pilih Jalankan Eksekusi Pemicu>.
Alur kerja membuat pengguna, mengeluarkan token akses untuk pengguna tersebut, lalu menghapus dan menghapus pengguna. Anda dapat memeriksa output tindakan ini setelah alur kerja berhasil berjalan.
Anda harus mendapatkan email di alamat yang ditentukan. Selain itu , Anda dapat menggunakan tindakan Dapatkan status pesan email untuk memeriksa status email yang dikirim melalui tindakan Kirim email . Untuk tindakan lainnya, tinjau dokumentasi referensi konektor Email Azure Communication Services.
Membersihkan sumber daya alur kerja
Untuk membersihkan sumber daya aplikasi logika, alur kerja, dan sumber daya terkait, tinjau cara membersihkan sumber daya aplikasi logika Konsumsi atau cara membersihkan sumber daya aplikasi logika Standar.
Pemecahan Masalah
Pengiriman Email
Untuk memecahkan masalah yang terkait dengan pengiriman email, Anda bisa mendapatkan status pengiriman email untuk mengambil detail pengiriman.
Penting
Hasil keberhasilan yang dikembalikan oleh polling untuk status operasi pengiriman hanya memvalidasi fakta bahwa email telah berhasil dikirim untuk pengiriman. Untuk mendapatkan informasi tambahan tentang status pengiriman di akhir penerima, Anda harus mereferensikan cara menangani peristiwa email.
Pembatasan Email
Jika Anda melihat bahwa aplikasi Anda menggantungnya bisa disebabkan oleh pengiriman email yang dibatasi. Anda dapat menangani ini melalui pengelogan atau dengan menerapkan kebijakan kustom.
Catatan
Penyiapan kotak pasir ini untuk membantu pengembang mulai membangun aplikasi. Anda dapat secara bertahap meminta untuk meningkatkan volume pengiriman setelah aplikasi siap untuk ditayangkan. Kirim permintaan dukungan untuk menaikkan batas pengiriman yang Anda inginkan jika Anda memerlukan pengiriman volume pesan yang melebihi batas tarif.
Membersihkan sumber daya Azure Communication Service
Untuk membersihkan dan menghapus langganan Communication Services, Anda dapat menghapus grup sumber daya atau sumber daya. Menghapus grup sumber daya juga menghapus sumber daya terkait lainnya. Pelajari selengkapnya tentang membersihkan sumber daya.
Langkah berikutnya
Dalam mulai cepat ini, Anda mempelajari cara mengirim email menggunakan Azure Communication Services. Anda mungkin juga ingin:
- Pelajari tentang konsep Email.
- Biasakan diri Anda dengan pustaka klien email.
- Pelajari selengkapnya tentang cara mengirim pesan obrolan dari Power Automate menggunakan Azure Communication Services.
- Pelajari selengkapnya tentang check-in token akses Membuat dan Mengelola pengguna Azure Communication Services dan token akses.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk