.net Core Sendasync Example

5 min read Jun 03, 2024
.net Core Sendasync Example

Envoyer des courriels asynchrones avec .NET Core : un guide pratique

Introduction

L'envoi d'e-mails est une fonctionnalité courante dans les applications web modernes. Afin d'optimiser les performances et d'éviter les blocages du thread principal, il est recommandé d'utiliser une approche asynchrone pour l'envoi d'e-mails. .NET Core fournit des outils puissants pour gérer les opérations asynchrones, et cet article vous guidera à travers un exemple pratique pour envoyer des e-mails asynchrone.

Configuration d'un service d'envoi d'e-mails

Avant de commencer à envoyer des e-mails asynchrone, vous devrez configurer un service d'envoi d'e-mails. Vous pouvez choisir parmi plusieurs options populaires, telles que SendGrid, Mailgun, ou AWS SES. Pour cet exemple, nous utiliserons SendGrid.

  1. Créer un compte SendGrid : Inscrivez-vous gratuitement sur le site web de SendGrid et obtenez votre clé API.
  2. Installer le package NuGet : Ajoutez le package SendGrid à votre projet .NET Core via la commande :
dotnet add package SendGrid
  1. Configurer le service : Dans votre code, créez une classe pour votre service d'envoi d'e-mails :
public class EmailService
{
    private readonly SendGridClient _client;

    public EmailService(string apiKey)
    {
        _client = new SendGridClient(apiKey);
    }

    public async Task SendEmailAsync(string to, string subject, string body)
    {
        var msg = new SendGridMessage();
        msg.AddTo(to);
        msg.SetSubject(subject);
        msg.AddContent(MimeType.Text, body);

        var response = await _client.SendEmailAsync(msg);

        // Vérifiez la réponse et gérez les erreurs si nécessaire.
    }
}

Envoi d'e-mails asynchrone

Maintenant que votre service d'envoi d'e-mails est configuré, vous pouvez l'utiliser pour envoyer des e-mails de manière asynchrone. Voici un exemple simple :

public class MyController : Controller
{
    private readonly EmailService _emailService;

    public MyController(EmailService emailService)
    {
        _emailService = emailService;
    }

    public async Task SendEmail()
    {
        // ... code pour obtenir les informations de l'e-mail ...

        await _emailService.SendEmailAsync("[email protected]", "Sujet de l'e-mail", "Corps de l'e-mail");

        return Ok("E-mail envoyé avec succès.");
    }
}

Dans cet exemple, la méthode SendEmail() est annotée avec async Task, ce qui indique qu'elle est une méthode asynchrone. L'appel await _emailService.SendEmailAsync() attend la fin de l'opération d'envoi d'e-mails avant de continuer. Cependant, le thread principal reste libre pendant ce temps, ce qui améliore les performances de votre application.

Conclusion

Envoyer des e-mails de manière asynchrone avec .NET Core est facile et offre de nombreux avantages en termes de performances et de fiabilité. En utilisant les outils et les exemples présentés dans cet article, vous pouvez implémenter des fonctionnalités d'envoi d'e-mails asynchrone dans vos applications web. N'oubliez pas de choisir un service d'envoi d'e-mails fiable et de gérer les erreurs potentielles afin de garantir un processus d'envoi d'e-mails robuste et efficace.

Related Post