Rychlý start: Vyvolání výjimky při dosažení limitu úrovně odesílání e-mailů
V tomto rychlém startu se dozvíte, jak vyvolat výjimku při dosažení limitu úrovně odesílání e-mailů pomocí našich sad EMAIL SDK.
Vyvolání výjimky při dosažení limitu úrovně odesílání e-mailů
Rozhraní EMAIL API omezuje počet e-mailových zpráv, které můžete posílat. Email odesílání má limity po minutách a za hodinu, jak je uvedeno v tématu Omezování rozhraní API a Vypršení časových limitů. Po dosažení těchto limitů se u následných e-mailů s SendAsync
voláním zobrazí chybová odpověď 429: Příliš mnoho požadavků. Ve výchozím nastavení je sada SDK nakonfigurovaná tak, aby se po určité době počkala na opakování těchto požadavků. Pro zachycení těchto kódů odpovědí doporučujeme nastavit protokolování pomocí sady Azure SDK .
Případně můžete ručně definovat vlastní zásadu:
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);
}
}
}
Přidejte tuto zásadu do e-mailového klienta, abyste zajistili, že kódy odpovědí 429 místo opakování vyvolá výjimku.
EmailClientOptions emailClientOptions = new EmailClientOptions();
emailClientOptions.AddPolicy(new Catch429Policy(), HttpPipelinePosition.PerRetry);
EmailClient emailClient = new EmailClient(connectionString, emailClientOptions);
Vyvolání výjimky při dosažení limitu úrovně odesílání e-mailů
Rozhraní EMAIL API omezuje počet e-mailových zpráv, které můžete posílat. Email odesílání má limity po minutách a za hodinu, jak je uvedeno v tématu Omezování rozhraní API a Vypršení časových limitů. Po dosažení těchto limitů se u následných e-mailů s send
voláním zobrazí chybová odpověď 429: Příliš mnoho požadavků. Ve výchozím nastavení je sada SDK nakonfigurovaná tak, aby se po určité době počkala na opakování těchto požadavků. Pro zachycení těchto kódů odpovědí doporučujeme nastavit protokolování pomocí sady Azure SDK .
Počet e-mailů, které můžete odesílat pomocí služby Azure Communication Email Service, jsou omezené na minutu a hodinu. Po dosažení těchto limitů se na další beginSend
volání zobrazí 429: Too Many Requests
odpověď. Ve výchozím nastavení je sada SDK nakonfigurovaná tak, aby se po určité době počkala na opakování těchto požadavků. Pro zachycení těchto kódů odpovědí doporučujeme nastavit protokolování pomocí sady Azure SDK .
Případně můžete ručně definovat vlastní zásadu:
const catch429Policy = {
name: "catch429Policy",
async sendRequest(request, next) {
const response = await next(request);
if (response.status === 429) {
throw new Error(response);
}
return response;
}
};
Přidejte tuto zásadu do e-mailového klienta, abyste zajistili, že kódy odpovědí 429 místo opakování vyvolá výjimku.
const clientOptions = {
additionalPolicies: [
{
policy: catch429Policy,
position: "perRetry"
}
]
}
const emailClient = new EmailClient(connectionString, clientOptions);
Vyvolání výjimky při dosažení limitu úrovně odesílání e-mailů
Rozhraní EMAIL API omezuje počet e-mailových zpráv, které můžete posílat. Email odesílání má limity po minutách a za hodinu, jak je uvedeno v tématu Omezování rozhraní API a Vypršení časových limitů. Po dosažení těchto limitů se u následných e-mailů s beginSend
voláním zobrazí chybová odpověď 429: Příliš mnoho požadavků. Ve výchozím nastavení je sada SDK nakonfigurovaná tak, aby se po určité době počkala na opakování těchto požadavků. Pro zachycení těchto kódů odpovědí doporučujeme nastavit protokolování pomocí sady Azure SDK .
Případně můžete ručně definovat vlastní zásadu:
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);
}
}
}
Přidejte tuto zásadu opakování do svého e-mailového klienta, abyste zajistili, že kódy odpovědí 429 místo opakování vyvolají výjimku.
import com.azure.core.http.policy.RetryPolicy;
EmailClient emailClient = new EmailClientBuilder()
.connectionString(connectionString)
.retryPolicy(new RetryPolicy(new CustomStrategy()))
.buildClient();
Vyvolání výjimky při dosažení limitu úrovně odesílání e-mailů
Rozhraní EMAIL API omezuje počet e-mailových zpráv, které můžete posílat. Email odesílání má limity po minutách a za hodinu, jak je uvedeno v tématu Omezování rozhraní API a Vypršení časových limitů. Po dosažení těchto limitů se u následných e-mailů s SendAsync
voláním zobrazí chybová odpověď 429: Příliš mnoho požadavků. Ve výchozím nastavení je sada SDK nakonfigurovaná tak, aby se po určité době počkala na opakování těchto požadavků. Pro zachycení těchto kódů odpovědí doporučujeme nastavit protokolování pomocí sady Azure SDK .
Případně můžete ručně definovat vlastní zásady, abyste zajistili, že kódy odpovědí 429 místo opakování vyvolají výjimku.
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)
Řešení potíží
Email Doručení
Pokud chcete řešit problémy související s doručováním e-mailů, můžete získat stav doručování e-mailů a zaznamenat tak podrobnosti o doručení.
Důležité
Výsledek úspěchu vrácený dotazem na stav operace odeslání pouze ověří skutečnost, že e-mail byl úspěšně odeslán k doručení. Pokud chcete získat další informace o stavu doručení na straně příjemce, budete potřebovat odkaz na zpracování e-mailových událostí.
Email omezování
Pokud uvidíte, že se vaše aplikace zablokuje, může to být kvůli omezování odesílání e-mailů. Můžete to vyřešit protokolováním nebo implementací vlastních zásad.
Poznámka
Toto nastavení sandboxu má vývojářům pomoct začít vytvářet aplikaci. Jakmile bude aplikace připravená k provozu, můžete postupně požádat o zvýšení odesílajícího svazku. Pokud požadujete odesílání objemu zpráv překračujících limity rychlosti, odešlete žádost o podporu ke zvýšení požadovaného limitu odesílání.
Vyčištění prostředků služby Azure Communication Service
Pokud chcete vyčistit a odebrat předplatné komunikačních služeb, můžete prostředek nebo skupinu prostředků odstranit. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené. Přečtěte si další informace o čištění prostředků.
Další kroky
V tomto rychlém startu jste zjistili, jak ručně dotazovat na stav při odesílání e-mailů pomocí Azure Communication Services.
Můžete také chtít:
- Naučte se posílat e-maily více příjemcům.
- Další informace o odesílání e-mailů s přílohami
- Seznámení s e-mailovou klientskou knihovnou