Mulai cepat: Melemparkan pengecualian saat batas tingkat pengiriman email tercapai
Dalam mulai cepat ini, Anda akan mempelajari tentang cara melemparkan pengecualian ketika batas tingkat pengiriman email tercapai menggunakan SDK Email kami.
Melemparkan pengecualian saat batas tingkat pengiriman email tercapai
API Email memiliki pembatasan dengan batasan jumlah pesan email yang dapat Anda kirim. Email pengiriman memiliki batas yang diterapkan per menit dan per jam seperti yang disebutkan dalam Pembatasan api dan Batas Waktu. Ketika Anda telah mencapai batas ini, email berikutnya mengirim dengan SendAsync
panggilan menerima respons kesalahan "429: Terlalu Banyak Permintaan". Secara default, SDK dikonfigurasi untuk mencoba kembali permintaan ini setelah menunggu periode waktu tertentu. Kami sarankan Anda menyiapkan pengelogan dengan Azure SDK untuk mengambil kode respons ini.
Atau, Anda dapat menentukan kebijakan kustom secara manual:
using Azure.Core.Pipeline;
public class Catch429Policy : HttpPipelineSynchronousPolicy
{
public override void OnReceivedResponse(HttpMessage message)
{
if (message.Response.Status == 429)
{
throw new Exception(message.Response);
}
else
{
base.OnReceivedResponse(message);
}
}
}
Tambahkan kebijakan ini ke klien email Anda untuk memastikan bahwa 429 kode respons memberikan pengecualian daripada dicoba ulang.
EmailClientOptions emailClientOptions = new EmailClientOptions();
emailClientOptions.AddPolicy(new Catch429Policy(), HttpPipelinePosition.PerRetry);
EmailClient emailClient = new EmailClient(connectionString, emailClientOptions);
Melemparkan pengecualian saat batas tingkat pengiriman email tercapai
API Email memiliki pembatasan dengan batasan jumlah pesan email yang dapat Anda kirim. Email pengiriman memiliki batas yang diterapkan per menit dan per jam seperti yang disebutkan dalam Pembatasan api dan Batas Waktu. Ketika Anda telah mencapai batas ini, email berikutnya mengirim dengan send
panggilan menerima respons kesalahan "429: Terlalu Banyak Permintaan". Secara default, SDK dikonfigurasi untuk mencoba kembali permintaan ini setelah menunggu periode waktu tertentu. Kami sarankan Anda menyiapkan pengelogan dengan Azure SDK untuk mengambil kode respons ini.
Ada batas per menit dan per jam untuk jumlah email yang dapat Anda kirim menggunakan Azure Communication Email Service. Ketika Anda telah mencapai batas ini, panggilan lebih lanjut beginSend
akan menerima 429: Too Many Requests
respons. Secara default, SDK dikonfigurasi untuk mencoba kembali permintaan ini setelah menunggu periode waktu tertentu. Kami sarankan Anda menyiapkan pengelogan dengan Azure SDK untuk mengambil kode respons ini.
Atau, Anda dapat menentukan kebijakan kustom secara manual:
const catch429Policy = {
name: "catch429Policy",
async sendRequest(request, next) {
const response = await next(request);
if (response.status === 429) {
throw new Error(response);
}
return response;
}
};
Tambahkan kebijakan ini ke klien email Anda untuk memastikan bahwa 429 kode respons memberikan pengecualian daripada dicoba ulang.
const clientOptions = {
additionalPolicies: [
{
policy: catch429Policy,
position: "perRetry"
}
]
}
const emailClient = new EmailClient(connectionString, clientOptions);
Melemparkan pengecualian saat batas tingkat pengiriman email tercapai
API Email memiliki pembatasan dengan batasan jumlah pesan email yang dapat Anda kirim. Email pengiriman memiliki batas yang diterapkan per menit dan per jam seperti yang disebutkan dalam Pembatasan api dan Batas Waktu. Ketika Anda telah mencapai batas ini, email berikutnya mengirim dengan beginSend
panggilan menerima respons kesalahan "429: Terlalu Banyak Permintaan". Secara default, SDK dikonfigurasi untuk mencoba kembali permintaan ini setelah menunggu periode waktu tertentu. Kami sarankan Anda menyiapkan pengelogan dengan Azure SDK untuk mengambil kode respons ini.
Atau, Anda dapat menentukan kebijakan kustom secara manual:
import com.azure.core.http.HttpResponse;
import com.azure.core.http.policy.ExponentialBackoff;
public class CustomStrategy extends ExponentialBackoff {
@Override
public boolean shouldRetry(HttpResponse httpResponse) {
int code = httpResponse.getStatusCode();
if (code == HTTP_STATUS_TOO_MANY_REQUESTS) {
throw new RuntimeException(httpResponse);
}
else {
return super.shouldRetry(httpResponse);
}
}
}
Tambahkan kebijakan coba lagi ini ke klien email Anda untuk memastikan bahwa 429 kode respons memberikan pengecualian daripada dicoba ulang.
import com.azure.core.http.policy.RetryPolicy;
EmailClient emailClient = new EmailClientBuilder()
.connectionString(connectionString)
.retryPolicy(new RetryPolicy(new CustomStrategy()))
.buildClient();
Melemparkan pengecualian saat batas tingkat pengiriman email tercapai
API Email memiliki pembatasan dengan batasan jumlah pesan email yang dapat Anda kirim. Email pengiriman memiliki batas yang diterapkan per menit dan per jam seperti yang disebutkan dalam Pembatasan api dan Batas Waktu. Ketika Anda telah mencapai batas ini, email berikutnya mengirim dengan SendAsync
panggilan menerima respons kesalahan "429: Terlalu Banyak Permintaan". Secara default, SDK dikonfigurasi untuk mencoba kembali permintaan ini setelah menunggu periode waktu tertentu. Kami sarankan Anda menyiapkan pengelogan dengan Azure SDK untuk mengambil kode respons ini.
Atau, Anda dapat menentukan kebijakan kustom secara manual untuk memastikan bahwa 429 kode respons memberikan pengecualian daripada dicoba ulang.
def callback(response):
if response.http_response.status_code == 429:
raise Exception(response.http_response)
email_client = EmailClient.from_connection_string(<connection_string>, raw_response_hook=callback)
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 ujung penerima, Anda harus mereferensikan cara menangani peristiwa email.
pembatasan Email
Jika Anda melihat bahwa aplikasi Anda menggantung itu 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
Jika ingin membersihkan dan menghapus langganan Azure Communication Services, Anda bisa menghapus sumber daya atau grup sumber daya. Menghapus grup sumber daya juga menghapus sumber daya apa pun yang terkait dengannya. Pelajari lebih lanjut cara membersihkan sumber daya.
Langkah berikutnya
Dalam mulai cepat ini, Anda mempelajari cara melakukan polling status secara manual saat mengirim email menggunakan Azure Communication Services.
Anda mungkin juga ingin:
- Pelajari cara mengirim email ke beberapa penerima
- Pelajari selengkapnya tentang mengirim email dengan lampiran
- Biasakan diri Anda dengan pustaka klien email
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