Hızlı Başlangıç: E-posta gönderme katmanı sınırına ulaşıldığında özel durum oluşturma
Bu hızlı başlangıçta, Email SDK'larımızı kullanarak e-posta gönderme katmanı sınırına ulaşıldığında özel durum oluşturma hakkında bilgi edineceksiniz.
E-posta gönderme katmanı sınırına ulaşıldığında özel durum oluşturma
Email API'sinin, gönderebileceğiniz e-posta iletilerinin sayısıyla ilgili sınırlamalarla azaltması vardır. Email gönderme, API Azaltma ve Zaman Aşımları'nda belirtildiği gibi dakikada ve saatte bir uygulanan sınırlara sahiptir. Bu sınırlara ulaştığınızda, çağrılarla gönderilen SendAsync
sonraki e-postalar "429: Çok Fazla İstek" hata yanıtı alır. Varsayılan olarak SDK, belirli bir süre bekledikten sonra bu istekleri yeniden deneyecek şekilde yapılandırılır. Bu yanıt kodlarını yakalamak için Azure SDK ile günlüğe kaydetmeyi ayarlamanızı öneririz.
Alternatif olarak, özel bir ilkeyi el ile tanımlayabilirsiniz:
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);
}
}
}
429 yanıt kodlarının yeniden denenmek yerine özel durum oluşturmasını sağlamak için bu ilkeyi e-posta istemcinize ekleyin.
EmailClientOptions emailClientOptions = new EmailClientOptions();
emailClientOptions.AddPolicy(new Catch429Policy(), HttpPipelinePosition.PerRetry);
EmailClient emailClient = new EmailClient(connectionString, emailClientOptions);
E-posta gönderme katmanı sınırına ulaşıldığında özel durum oluşturma
Email API'sinin, gönderebileceğiniz e-posta iletilerinin sayısıyla ilgili sınırlamalarla azaltması vardır. Email gönderme, API Azaltma ve Zaman Aşımları'nda belirtildiği gibi dakikada ve saatte bir uygulanan sınırlara sahiptir. Bu sınırlara ulaştığınızda, çağrılarla gönderilen send
sonraki e-postalar "429: Çok Fazla İstek" hata yanıtı alır. Varsayılan olarak SDK, belirli bir süre bekledikten sonra bu istekleri yeniden deneyecek şekilde yapılandırılır. Bu yanıt kodlarını yakalamak için Azure SDK ile günlüğe kaydetmeyi ayarlamanızı öneririz.
Azure İletişim Email Hizmeti'ni kullanarak gönderebileceğiniz e-posta miktarının dakika başına ve saat başına sınırları vardır. Bu sınırlara ulaştığınızda, diğer beginSend
tüm çağrılar yanıt 429: Too Many Requests
alır. Varsayılan olarak SDK, belirli bir süre bekledikten sonra bu istekleri yeniden deneyecek şekilde yapılandırılır. Bu yanıt kodlarını yakalamak için Azure SDK ile günlüğe kaydetmeyi ayarlamanızı öneririz.
Alternatif olarak, özel bir ilkeyi el ile tanımlayabilirsiniz:
const catch429Policy = {
name: "catch429Policy",
async sendRequest(request, next) {
const response = await next(request);
if (response.status === 429) {
throw new Error(response);
}
return response;
}
};
429 yanıt kodlarının yeniden denenmek yerine özel durum oluşturmasını sağlamak için bu ilkeyi e-posta istemcinize ekleyin.
const clientOptions = {
additionalPolicies: [
{
policy: catch429Policy,
position: "perRetry"
}
]
}
const emailClient = new EmailClient(connectionString, clientOptions);
E-posta gönderme katmanı sınırına ulaşıldığında özel durum oluşturma
Email API'sinin, gönderebileceğiniz e-posta iletilerinin sayısıyla ilgili sınırlamalarla azaltması vardır. Email gönderme, API Azaltma ve Zaman Aşımları'nda belirtildiği gibi dakikada ve saatte bir uygulanan sınırlara sahiptir. Bu sınırlara ulaştığınızda, çağrılarla gönderilen beginSend
sonraki e-postalar "429: Çok Fazla İstek" hata yanıtı alır. Varsayılan olarak SDK, belirli bir süre bekledikten sonra bu istekleri yeniden deneyecek şekilde yapılandırılır. Bu yanıt kodlarını yakalamak için Azure SDK ile günlüğe kaydetmeyi ayarlamanızı öneririz.
Alternatif olarak, özel bir ilkeyi el ile tanımlayabilirsiniz:
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);
}
}
}
429 yanıt kodunun yeniden denenmek yerine özel durum oluşturmasını sağlamak için bu yeniden deneme ilkesini e-posta istemcinize ekleyin.
import com.azure.core.http.policy.RetryPolicy;
EmailClient emailClient = new EmailClientBuilder()
.connectionString(connectionString)
.retryPolicy(new RetryPolicy(new CustomStrategy()))
.buildClient();
E-posta gönderme katmanı sınırına ulaşıldığında özel durum oluşturma
Email API'sinin, gönderebileceğiniz e-posta iletilerinin sayısıyla ilgili sınırlamalarla azaltması vardır. Email gönderme, API Azaltma ve Zaman Aşımları'nda belirtildiği gibi dakikada ve saatte bir uygulanan sınırlara sahiptir. Bu sınırlara ulaştığınızda, çağrılarla gönderilen SendAsync
sonraki e-postalar "429: Çok Fazla İstek" hata yanıtı alır. Varsayılan olarak SDK, belirli bir süre bekledikten sonra bu istekleri yeniden deneyecek şekilde yapılandırılır. Bu yanıt kodlarını yakalamak için Azure SDK ile günlüğe kaydetmeyi ayarlamanızı öneririz.
Alternatif olarak, 429 yanıt kodlarının yeniden denenmek yerine özel durum oluşturmasını sağlamak için el ile özel bir ilke tanımlayabilirsiniz.
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)
Sorun giderme
Email Teslimi
E-posta teslimi ile ilgili sorunları gidermek için, teslim ayrıntılarını yakalamak üzere e-posta tesliminin durumunu alabilirsiniz .
Önemli
Gönderme işleminin durumunu yoklayarak 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 ek bilgi almak için e-posta olaylarını işlemeye başvurmanız gerekir.
Email 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 gerçekleştirebilirsiniz.
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ı yükseltmek 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 e-posta gönderirken durumu el ile yoklamayı öğrendiniz.
Ayrıca şunları da isteyebilirsiniz:
- Birden çok alıcıya e-posta göndermeyi öğrenin
- Ekleri olan e-posta gönderme hakkında daha fazla bilgi edinin
- E-posta istemci kitaplığı hakkında bilgi edinin