Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, E-posta SDK'larımız kullanılarak e-posta gönderme katmanı sınırına ulaşıldığında nasıl özel durum oluşturacakları açıklanır.
E-posta gönderme katmanı sınırına ulaşıldığında özel durum oluşturma
E-posta API'sinde, gönderebileceğiniz e-posta iletilerinin sayısıyla ilgili sınırlamalarla azaltma kullanılır. E-posta gönderme sınırları , API Azaltma ve Zaman Aşımları'nda açıklandığı gibi dakika başına ve saat başına uygulanır. Bu sınırlara ulaştığınızda, SendAsync ile yapılan sonraki e-posta gönderimleri 429: Too Many Requests 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 kodunun 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
E-posta API'sinde, gönderebileceğiniz e-posta iletilerinin sayısıyla ilgili sınırlamalarla azaltma kullanılır. E-posta gönderme sınırları , API Azaltma ve Zaman Aşımları'nda açıklandığı gibi dakika başına ve saat başına uygulanır. Bu sınırlara ulaştığınızda, SendAsync ile yapılan sonraki e-posta gönderimleri 429: Too Many Requests 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 E-posta Hizmeti'ni kullanarak gönderebileceğiniz e-posta miktarı için 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 bir 429: Too Many Requests 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ı kaydetmek için Azure SDK kullanarak günlük kaydını yapılandırmanı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 kodunun 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
E-posta API'sinde, gönderebileceğiniz e-posta iletilerinin sayısıyla ilgili sınırlamalarla azaltma kullanılır. E-posta gönderme sınırları , API Azaltma ve Zaman Aşımları'nda açıklandığı gibi dakika başına ve saat başına uygulanır. Bu sınırlara ulaştığınızda, SendAsync ile yapılan sonraki e-posta gönderimleri 429: Too Many Requests 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
E-posta API'sinde, gönderebileceğiniz e-posta iletilerinin sayısıyla ilgili sınırlamalarla azaltma kullanılır. E-posta gönderme sınırları , API Azaltma ve Zaman Aşımları'nda açıklandığı gibi dakika başına ve saat başına uygulanır. Bu sınırlara ulaştığınızda, SendAsync ile yapılan sonraki e-posta gönderimleri 429: Too Many Requests 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 kodunun yeniden denenmek yerine özel durum oluşturmasını sağlamak için özel bir ilkeyi el ile 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
E-posta Teslimi
E-posta teslimatıyla ilgili sorunları gidermek için, teslimat ayrıntılarını yakalamak üzere e-posta teslimatının durumunu kontrol edebilirsiniz.
Önemli
Gönderme işleminin durumu yoklanarak döndürülen başarı sonucu yalnızca e-postanın teslim için 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 Sınırlama
Uygulamanız kilitleniyorsa, bunun nedeni e-posta göndermenin kısıtlanması olabilir. E-posta kısıtlamayı kayıt tutarak veya özel bir ilke uygulayarak yönetebilirsiniz.
Uyarı
Bu deneme alanı, geliştiricilerin uygulamayı oluşturmaya başlamasına yardımcı olmak amacıyla tasarlanmıştır. Uygulama yayına hazır olduğunda gönderim hacmini kademeli olarak artırmak için talepte bulunabilirsiniz. Göndermek istediğiniz mesaj hacmi, oran limitlerini aşıyorsa, istediğiniz gönderim limitini artırmak için bir destek talebi gönderin.
Azure İletişim Hizmeti kaynaklarını temizle
Eğer bir İletişim Hizmetleri aboneliğini temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunu silmek, onunla ilişkili diğer tüm kaynakları da siler. Kaynakları temizleme hakkında daha fazla bilgi edinin.
Sonraki Adımlar
- Birden fazla alıcıya nasıl e-posta göndereceğinizi öğrenin
- Ekli e-posta gönderme hakkında daha fazla bilgi edinin
- E-posta istemci kütüphanesi ile tanışın.