Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mail HTML/Razor automatique? ASP.NET CORE 2

Ou mieux instancier une page Razor comme modèle de mail automatique

    25 février 2019 à 20:07:31

    Bonjour tout le monde.

    Je suis en pleine création d'un site web avec identification sous ASP.NET CORE 2.

    Relativement nouveau dans l'environnement .NET, je cherche à créer un système de création de compte via identification par adresse mail.

    Ceci n'est clairement pas un problème et est déjà fonctionnel.

    Le soucis que je rencontre c'est comment mettre en forme le mail en question avec du html, css, ou mieux razor, afin de le rendre dynamique en fonction des cas.

    Voici le code de ma solution actuelle pour l'envoi de mail afin d'identifier le mail et d'activer le compte:

                string NumeroUnique = Guid.NewGuid().ToString("N"); /*Creation d'un ID unique pour le cookie*/
    
                string HashPassword = Crypto.HashMdp(password); /*Cryptage PassWord*/
    
                m = new Membres { Pseudo = pseudo, Mail = mail, Password = HashPassword, Ip = remoteIpAddress, NoUnique = NumeroUnique };
    
                SmtpClient client = new SmtpClient
                {
                    Host = "smtp.gmail.com",
                    Port = 587,
                    EnableSsl = true,
                    Credentials = new NetworkCredential("MONMAIL@gmail.com", "MON_PASSWORD")
                };
    
                MailMessage message = new MailMessage("MONMAIL@gmail.com", m.Mail)
                {
                    IsBodyHtml = true,
                    Body = "Merci de confirmer votre adresse mail en cliquant sur le lien suivant: <a href = \"http://localhost:51965/Membres/Confirm/" + m.NoUnique + "\">Lien</a>"
                    ,
    
    
                    Subject = "Confirmez votre adresse Mail"
                };
    
    
    
                client.Send(message);
    
                m.AddMembre();

    Je précise que je n'ai partagé que le code d'envoi dudit mail et qu'il fonctionne très bien. (je passe par Gmail pour le moment comme compte smtp pour mes tests hors ligne)

    Comme je l'ai dit tout ce code fonctionnne très bien. Par contre celà se complique lorsque je veux mettre en forme un minimum ce mail.

    Si je veux rajouter du html (des tableaux comme on m'a conseillé), je me retrouve toujours au final dans le mail de reception avec les balises html et aucune mise en forme...

    Par exemple pour un test simple dans le mail receptionné j'ai reçu:

    < th >< tr > Animaux < tr >< th >

    En fait l'idéal pour moi serait que l'on puisse récupérer le code CSHTML d'une view, qui soit paramétrable avec un Model ou ViewBag par exemple (sans jamais l'appeler comme vue "active" dans le controleur), créer un objet instanciable avec pour lui passer des paramètres, afin dans le but ultime d'envoyer un mail totalement paramétrable avec une mise en page prédéfinie dans la "View"...

    Je sais que c'est possible , je pense être capable de coder cette fonctionnalité sans problème à la base... Mais le soucis c'est que je n'arrive pas finalement à passer une mise en page html/css à une View appelée sans que le code apparaisse dans le rendu final... Et finalement une telle fonctionnalité me servira autant pour les mails que pour le Front. Pour dans certains cas afficher certains textes dans les pages razor en codant avec les balises html en back (j'ai essayé d'envoyer en "string" ou même "html.raw" les balises html mais elles apparaissent dans le rendu final...)

    J'espère avoir été assez clair dans ma question, si tel n'était pas le cas, je me ferais un plaisir de vous préciser le fond de mon idée avec des exemples plus précis.

    En tout cas je vous remercies d'avance de vos réponses. Ce n'est pas pressé j'ai encore énormément de fonctionnalités back à développer entre temps. Mais j'avoues que là je tombe sur un problème que je n'arrive pas a résoudre seul...

    • Partager sur Facebook
    • Partager sur Twitter

    Mail HTML/Razor automatique? ASP.NET CORE 2

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown