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:
- Megtudhatja, hogyan küldhet e-mailt több címzettnek
- További információ az e-mailek mellékletekkel való elküldéséről
- Ismerkedés az e-mail ügyfélkódtárával