SendGrid et asp.net core Identity–Envoyons des mails de création de compte

aspnet core sendgrid et identity

Pour un de nos derniers projets (un outil d’aide aux formateurs indépendants), nous avons besoin d’envoyer des mails pour la création des comptes, et la récupération des mots de passe.
Lors d’un de nos premiers posts dans notre blog, nous avions souhaité utiliser l’API d’Active Campaign, avec un webservice Express en node.js (que nous avions développé). Cette fois-ci, nous nous sommes arrêtés sur un autre outil d’envoi de mail : SendGrid.

 

Création d’un compte SendGrid

image

 

Préparation de notre application asp.net core

Côté asp.net core, nous devons ajout dans notre configuration le login et la clef d’accès à SendGrid. Vu que ce sont des données sensibles, nous allons utiliser une notion que nous avions déjà vue, à savoir les UserSecrets.

Pour se faire, deux étapes :
1. Création de la classe proxy qui représentera les données en configuration

2. Ajout de la configuration en UserSecrets

{

« ApiEmailUserName »: « test »,
« ApiEmailUserKey »:  « 123456 »
}

(Note: vous devez avoir configuré votre Startup pour qu’il prenne en compte les UserSecrets)

 

Pour récupérer la configuration pour SendGrid, nous allons utiliser une force d’asp.net core : l’injection de dépendances !

Tout d’abord, nous devons informer l’injecteur de notre classe de proxy de la configuration.

Ainsi, nous allons pouvoir récupérer depuis le constructeur l’instance de la classe de proxy de la configuration.

 

Pour y arriver, nous avons créé une classe dédiée pour l’envoi des mails. Elle implémente l’interface IMailSender (depuis Microsoft.AspNetCore.Identity.UI.Services).

Vous noterez ici l’appel à l’interface IOptions, qui se trouve dans la dll Microsoft.Extensions.Options (trouvable via NuGet).

image

Et elle sera utilisée dans notre moteur d’envoi du mail de validation de création du compte utilisateur.

 

Envoi de notre premier mail avec SendGrid

Avant d’envoyer notre premier email, nous devons installer le package dédié SendGrid :

image

Vous vous souvenez que plus haut, nous avons préparé un login et une clef pour se connecter à SendGrid.
Cependant, nous n’avons pas configuré l’accès depuis SendGrid !

 

image

Il nous reste plus qu’à donner un nom pour avoir la clef de l’api. Et de les renseigner dans notre fichier secrets.json.

 

Ca y est, on peut attaquer notre premier envoi :

 

carbon - 2019-07-02T144203.701

 

Et voilà, nous sommes prêt pour envoyer notre email de confirmation de création de compte.

Notre adresse

1 rue du guesclin
44000 Nantes

Notre téléphone

+33 2 79 65 52 87

Société

DevToBeCurious SARL
84860163900018 - Nantes B 848 601 639