FEAT: Add EmailService #14

Merged
eliott merged 2 commits from feat/mail-service into develop 2026-03-18 20:12:58 +01:00
Member
No description provided.
Romane self-assigned this 2026-03-18 08:49:34 +01:00
Romane requested review from eliott 2026-03-18 08:49:40 +01:00
@ -0,0 +4,4 @@
namespace resources_relationnelles_api.Api.Emails.Services;
public class EmailService

Tu as oublié les commentaires

Tu as oublié les commentaires
@ -0,0 +9,4 @@
public void SendEmail(string recipientAddress, string subject, string body, string recipientName)
{
var message = new MimeMessage();
message.From.Add(new MailboxAddress("(Re)Sources Relationnelles", Environment.GetEnvironmentVariable("SMTP_FROM")));

Ici tu doit utiliser le EnvConfig que t'avais fais avant avec EnvConfig.SMTP_FROM

Ici tu doit utiliser le EnvConfig que t'avais fais avant avec EnvConfig.SMTP_FROM
@ -0,0 +19,4 @@
Text = body
};
using (var client = new SmtpClient())

Tu peux créer le client dans une autre fonction pour les principes SOLID. Comme ça ta fonction fait qu'une seule chose, donc ici l'envoi de mail et une autre fonction qui gère que la création du client SMTP

Tu peux créer le client dans une autre fonction pour les principes SOLID. Comme ça ta fonction fait qu'une seule chose, donc ici l'envoi de mail et une autre fonction qui gère que la création du client SMTP
@ -0,0 +22,4 @@
using (var client = new SmtpClient())
{
// Connect to the SMTP Serve
client.Connect(

Ici utilise le ConnectAsync() pour faire de l'asynchrone, c'est plus performant et meilleur de manière générale.

Ex: await client.ConnectAsync(...)

Ici utilise le ConnectAsync() pour faire de l'asynchrone, c'est plus performant et meilleur de manière générale. Ex: await client.ConnectAsync(...)
eliott marked this conversation as resolved
@ -0,0 +23,4 @@
{
// Connect to the SMTP Serve
client.Connect(
Environment.GetEnvironmentVariable("SMTP_SERVER"), int.Parse(Environment.GetEnvironmentVariable("SMTP_PORT")), bool.Parse(Environment.GetEnvironmentVariable("SMTP_ENABLE_SSL"))

Pareil pour les variables d'environnements, réutilise ton EnvConfig

Pareil pour les variables d'environnements, réutilise ton EnvConfig
@ -0,0 +26,4 @@
Environment.GetEnvironmentVariable("SMTP_SERVER"), int.Parse(Environment.GetEnvironmentVariable("SMTP_PORT")), bool.Parse(Environment.GetEnvironmentVariable("SMTP_ENABLE_SSL"))
);
//Authenticate using your email credentials
client.Authenticate(Environment.GetEnvironmentVariable("SMTP_USERNAME"), Environment.GetEnvironmentVariable("SMTP_PASSWORD"));

Pareil ici AuthenticateAsync()
Et pareil pour le EnvConfig

Pareil ici AuthenticateAsync() Et pareil pour le EnvConfig
eliott marked this conversation as resolved
@ -0,0 +28,4 @@
//Authenticate using your email credentials
client.Authenticate(Environment.GetEnvironmentVariable("SMTP_USERNAME"), Environment.GetEnvironmentVariable("SMTP_PASSWORD"));
// Send the email
client.Send(message);

Pareil SendAsync()

Pareil SendAsync()
eliott marked this conversation as resolved
@ -0,0 +30,4 @@
// Send the email
client.Send(message);
// Disconnect from the server
client.Disconnect(true);

Pareil DisconnectAsync()

Pareil DisconnectAsync()
eliott approved these changes 2026-03-18 20:12:22 +01:00
@ -0,0 +36,4 @@
/// <summary>
/// Sends a MIME email message using SMTP Server
/// </summary>
/// <param name="message"></param>

Tu as oublié le détail dans le param mais rien de grave

Tu as oublié le détail dans le param mais rien de grave
eliott force-pushed feat/mail-service from 30c1a86f3b to 34eb9a097d 2026-03-18 20:12:37 +01:00 Compare
eliott merged commit 8e463bdedd into develop 2026-03-18 20:12:58 +01:00
eliott deleted branch feat/mail-service 2026-03-18 20:12:58 +01:00
Commenting is not possible because the repository is archived.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
cda-solutions/resources-relationnelles-api!14
No description provided.