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
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).
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 :
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 !
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 :
Et voilà, nous sommes prêt pour envoyer notre email de confirmation de création de compte.