Megosztás a következőn keresztül:


Rövid útmutató: Kivételt jelez az e-mail-küldési szint korlátjának elérésekor

Ebben a rövid útmutatóban megtudhatja, hogyan küldhet kivételt, ha eléri az e-mail-küldési szint korlátját a Email SDK-k használatával.

Kivétel küldése az e-mail-küldési szint korlátjának elérésekor

A Email API szabályozta a küldhető e-mailek számát. Email küldés percenként és óránként korlátozásokat alkalmaz az API-szabályozásban és az időtúllépésekben leírtak szerint. Amikor elérte ezeket a korlátokat, a hívásokat tartalmazó SendAsync későbbi e-mailek a "429: Túl sok kérelem" hibaüzenetet kapják. Alapértelmezés szerint az SDK úgy van konfigurálva, hogy egy bizonyos időtartam várakozása után újrapróbálja ezeket a kéréseket. Javasoljuk, hogy állítsa be a naplózást az Azure SDK-val a válaszkódok rögzítéséhez.

Másik lehetőségként manuálisan is definiálhat egyéni szabályzatot:

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);
        }
    }
}

Adja hozzá ezt a házirendet az e-mail-ügyfélhez, hogy a 429 válaszkódok kivételt okozzanak ahelyett, hogy újrapróbálkoztak.

EmailClientOptions emailClientOptions = new EmailClientOptions();
emailClientOptions.AddPolicy(new Catch429Policy(), HttpPipelinePosition.PerRetry);

EmailClient emailClient = new EmailClient(connectionString, emailClientOptions);

Kivétel küldése az e-mail-küldési szint korlátjának elérésekor

A Email API szabályozta a küldhető e-mailek számát. Email küldés percenként és óránként korlátozásokat alkalmaz az API-szabályozásban és az időtúllépésekben leírtak szerint. Amikor elérte ezeket a korlátokat, a hívásokat tartalmazó send későbbi e-mailek a "429: Túl sok kérelem" hibaüzenetet kapják. Alapértelmezés szerint az SDK úgy van konfigurálva, hogy egy bizonyos időtartam várakozása után újrapróbálja ezeket a kéréseket. Javasoljuk, hogy állítsa be a naplózást az Azure SDK-val a válaszkódok rögzítéséhez.

Az Azure Communication Email Service használatával elküldhető e-mailek mennyisége percenként és óránként korlátozott. Ha elérte ezeket a korlátokat, a további beginSend hívások választ kapnak 429: Too Many Requests . Alapértelmezés szerint az SDK úgy van konfigurálva, hogy egy bizonyos időtartam várakozása után újrapróbálja ezeket a kéréseket. Javasoljuk, hogy állítsa be a naplózást az Azure SDK-val a válaszkódok rögzítéséhez.

Másik lehetőségként manuálisan is definiálhat egyéni szabályzatot:

const catch429Policy = {
  name: "catch429Policy",
  async sendRequest(request, next) {
    const response = await next(request);
    if (response.status === 429) {
      throw new Error(response);
    }
    return response;
  }
};

Adja hozzá ezt a házirendet az e-mail-ügyfélhez, hogy a 429 válaszkódok kivételt okozzanak ahelyett, hogy újrapróbálkoztak.

const clientOptions = {
  additionalPolicies: [
    {
      policy: catch429Policy,
      position: "perRetry"
    }
  ]
}

const emailClient = new EmailClient(connectionString, clientOptions);

Kivétel küldése az e-mail-küldési szint korlátjának elérésekor

A Email API szabályozta a küldhető e-mailek számát. Email küldés percenként és óránként korlátozásokat alkalmaz az API-szabályozásban és az időtúllépésekben leírtak szerint. Amikor elérte ezeket a korlátokat, a hívásokat tartalmazó beginSend későbbi e-mailek a "429: Túl sok kérelem" hibaüzenetet kapják. Alapértelmezés szerint az SDK úgy van konfigurálva, hogy egy bizonyos időtartam várakozása után újrapróbálja ezeket a kéréseket. Javasoljuk, hogy állítsa be a naplózást az Azure SDK-val a válaszkódok rögzítéséhez.

Másik lehetőségként manuálisan is definiálhat egyéni szabályzatot:

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);
        }
    }
}

Adja hozzá ezt az újrapróbálkozási szabályzatot az e-mail-ügyfélhez, hogy a 429 válaszkódok kivételt okozzanak ahelyett, hogy újrapróbálkoztak.

import com.azure.core.http.policy.RetryPolicy;

EmailClient emailClient = new EmailClientBuilder()
    .connectionString(connectionString)
    .retryPolicy(new RetryPolicy(new CustomStrategy()))
    .buildClient();

Kivétel küldése az e-mail-küldési szint korlátjának elérésekor

A Email API szabályozta a küldhető e-mailek számát. Email küldés percenként és óránként korlátozásokat alkalmaz az API-szabályozásban és az időtúllépésekben leírtak szerint. Amikor elérte ezeket a korlátokat, a hívásokat tartalmazó SendAsync későbbi e-mailek a "429: Túl sok kérelem" hibaüzenetet kapják. Alapértelmezés szerint az SDK úgy van konfigurálva, hogy egy bizonyos időtartam várakozása után újrapróbálja ezeket a kéréseket. Javasoljuk, hogy állítsa be a naplózást az Azure SDK-val a válaszkódok rögzítéséhez.

Másik lehetőségként manuálisan is definiálhat egyéni szabályzatot, hogy a 429 válaszkódok kivételt okozzanak ahelyett, hogy újrapróbálkoztak.

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)

Hibaelhárítás

Email kézbesítés

Az e-mail-kézbesítéssel kapcsolatos problémák elhárításához lekérheti az e-mail-kézbesítés állapotát a kézbesítés részleteinek rögzítéséhez.

Fontos

A küldési művelet állapotának lekérdezésével visszaadott sikeres eredmény csak azt ellenőrzi, hogy az e-mail sikeresen elküldve lett-e kézbesítésre. Ha további információt szeretne kapni a kézbesítés állapotáról a címzetten, hivatkoznia kell az e-mail-események kezelésére.

Email szabályozás

Ha azt látja, hogy az alkalmazás le van függesztve, annak az lehet az oka, hogy az e-mailek küldése szabályozva van. Ezt naplózással vagy egyéni szabályzat implementálásával is kezelheti.

Megjegyzés

Ez a tesztkörnyezet-beállítás segít a fejlesztőknek az alkalmazás létrehozásának megkezdésében. Ha az alkalmazás készen áll az élő adásra, fokozatosan kérheti a küldési kötet növelését. Küldjön támogatási kérést a kívánt küldési korlát megemeléséhez, ha a sebességkorlátot meghaladó mennyiségű üzenetet kell küldenie.

Azure Communication Service-erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy Communication Services-előfizetést, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli. További információ az erőforrások eltávolításáról.

Következő lépések

Ebben a rövid útmutatóban megtanulta, hogyan lehet manuálisan lekérdezni az állapotot az e-mailek Azure Communication Services használatával történő küldésekor.

A következőket is érdemes lehet elvégeznie: