none
informations envoyés dans un mail RRS feed

  • Question

  • Bonjour,

    J'ai un formulaire d'inscription et je veux que lors d'un clique sur le bouton 'valider' tous ces informations seront enregistrés dans la base de données et un mot de passe aléatoire est enregistré aussi dans la base et envoyé dans le mail de celui qui a fait l'inscription!

    comment le faire en utilisant asp.net mvc ?!! sachant que j'ai mis ce code dans le HomeController:

      public ActionResult Create(MvcApp.Models.User pers)
            {
                _Context.User.AddObject(pers);
                _Context.SaveChanges(); 
                 return RedirectToAction("Details");
    
            
            }

    lundi 23 juillet 2012 17:49

Réponses

  • Donc dans le fichier web.config on a mettre les informations sur le serveur de messagerie. Ces informations sont utilisées automatiquement par les classes .NET qui permettent d'envoyer un message. On trouvera donc dans ce fichier qq chose comme :

      <system.net>
        <mailSettings>
          <smtp from="ici@mycompany.com">
            <network host="serveur.mycompany.com"/>
          </smtp>
        </mailSettings>
      </system.net>

    Dans le code on aura sans doute qq part une fonction comme :

       private void Send(string to,string subject,string body)
            {
                using (System.Net.Mail.MailMessage m=new System.Net.Mail.MailMessage())
                {
                    m.To.Add(to);
                    m.Subject=subject;
                    m.Body=body;
                    using (System.Net.Mail.SmtpClient c = new System.Net.Mail.SmtpClient())
                    {
                        c.Send(m);
                    }
                }
            }

    On pourra alors l'appeler sans doute avec qq chose comme :

     _Context.User.AddObject(pers);
    string password=GeneratePassword();
    pers.Password=password;
                _Context.SaveChanges(); 
    Outils.Send(pers.email,"Votre mot de passe","C'est "+password);
                 return RedirectToAction("Details");
    

    Si cela ne marche pas essayez d'être plus explicite :
    - vous ne voyez pas ou mettre le code ?
    - ou vous tapez le code mais vous avez une erreur de compilation
    - ou une erreur à l'envoi du mail etc...

    Sinon si cela ne fonctionne pas et que réposez la question qq va refournir un autre exemple et vous retomberez peut-être sur le même souci. Donc essayez plutôt d'expliquer ce qui coince ce qui devrait permettre d'avancer. Eventuellement essayez déjà de mettre au point l'envoi du mail sur une page de test, indépendamment de là ou vous voulez l'utiliser. Une fois la fonction au point, vous pourrez de toute façon l'appeler d'ailleurs.

    Dans la fonction GeneratePassword vous mettez ce que vous voulez (je crois que qq a fournit du code pour faire une suite aléatoire de lettre, on peut aussi tirer au sort des syllabes pour générer un mot de passe mnémotechnique ou tout simplement demander à l'utilisateur ce qu'il veut (si le mot de passe n'est pas mémorisable facilement son premier mouvement sera de le changer)).

    Pour le mot de passe, on pourrait peut-être passer par une méthode séparée du modèle User de façon à ce que l'on ne puisse pas relire le mot de passe directement depuis le modèle User...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    • Proposé comme réponse Aurel Bera vendredi 14 septembre 2012 06:24
    • Marqué comme réponse marwa58 samedi 22 septembre 2012 13:31
    mercredi 25 juillet 2012 16:04
    Modérateur

Toutes les réponses

  • Bonjour,

    Vu précédemment mais difficile de comprendre ce qui pose problème exactement. Avec _Context.SaveChanges, les données ne sont pas sauvées dans la base ? Parfois, c'est juste une impression car on ne vérifie pas le bon fichier de données où on l'écrase à chaque "build" (si on utilise SQL Server Express et que l'on ajouté le fichier MDF au projet).

    La génération d'un mot de passe a déjà fait l'objet de réponses. L'envoi de mail se fait via System.Net.MailMessage, voir par exemple http://www.systemnetmail.com/faq/2.1.aspx pour un exemple de code. Eventuellement la config par défaut peut-être enregistrée dans le fichier web.config : http://blog.dotnetclr.com/archive/2009/08/18/511.aspx


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    lundi 23 juillet 2012 18:06
    Modérateur
  • Bonjour,

    Ce qui pose problème c'est comment faire pour que plus du sauvegarde des données dans la base, un mot de passe pour chaque abonné sera envoyé dans son boite mail 

    mardi 24 juillet 2012 00:01
  • Vous utilisez C# ou VB ? Avez vous essayé l'exemple de code que j'ai donné dans le lien précédent ? Si non, pourquoi ? Si oui, qu'est-ce qui cloche ? Faites déjà un envoi de mail. On verra ensuite pour le mot de passe (ou retrouver la question que vous avez posée et pour laquelle plusieurs suggestions avaient été faites).


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    mardi 24 juillet 2012 07:45
    Modérateur
  • Bonsoir,

    comment faire pour que lorsque je clique sur un bouton 'valider' d'un formulaire d'inscription , un mot de passe donné aléatoirement et qui est unique à celui qui a fait cette inscription est envoyé dans son boit e_mail?

    Je développe avec Asp.net MVC , C#

    mercredi 25 juillet 2012 00:27
  • J'utilise C# et asp.net mvc 

    J'ai pas bien compris votre exemple monsieur!

    mercredi 25 juillet 2012 01:22
  • Merci de ne pas poser plusieurs fois la même question. J'ai bien vu que vous disiez ne pas comprendre le code d'envoi de mail. Je vous fais un exemple tout à l'heure dans la question que vous avez déjà posé (sur l'envoi de mail en tout cas)...

    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    mercredi 25 juillet 2012 11:40
    Modérateur
  • Donc dans le fichier web.config on a mettre les informations sur le serveur de messagerie. Ces informations sont utilisées automatiquement par les classes .NET qui permettent d'envoyer un message. On trouvera donc dans ce fichier qq chose comme :

      <system.net>
        <mailSettings>
          <smtp from="ici@mycompany.com">
            <network host="serveur.mycompany.com"/>
          </smtp>
        </mailSettings>
      </system.net>

    Dans le code on aura sans doute qq part une fonction comme :

       private void Send(string to,string subject,string body)
            {
                using (System.Net.Mail.MailMessage m=new System.Net.Mail.MailMessage())
                {
                    m.To.Add(to);
                    m.Subject=subject;
                    m.Body=body;
                    using (System.Net.Mail.SmtpClient c = new System.Net.Mail.SmtpClient())
                    {
                        c.Send(m);
                    }
                }
            }

    On pourra alors l'appeler sans doute avec qq chose comme :

     _Context.User.AddObject(pers);
    string password=GeneratePassword();
    pers.Password=password;
                _Context.SaveChanges(); 
    Outils.Send(pers.email,"Votre mot de passe","C'est "+password);
                 return RedirectToAction("Details");
    

    Si cela ne marche pas essayez d'être plus explicite :
    - vous ne voyez pas ou mettre le code ?
    - ou vous tapez le code mais vous avez une erreur de compilation
    - ou une erreur à l'envoi du mail etc...

    Sinon si cela ne fonctionne pas et que réposez la question qq va refournir un autre exemple et vous retomberez peut-être sur le même souci. Donc essayez plutôt d'expliquer ce qui coince ce qui devrait permettre d'avancer. Eventuellement essayez déjà de mettre au point l'envoi du mail sur une page de test, indépendamment de là ou vous voulez l'utiliser. Une fois la fonction au point, vous pourrez de toute façon l'appeler d'ailleurs.

    Dans la fonction GeneratePassword vous mettez ce que vous voulez (je crois que qq a fournit du code pour faire une suite aléatoire de lettre, on peut aussi tirer au sort des syllabes pour générer un mot de passe mnémotechnique ou tout simplement demander à l'utilisateur ce qu'il veut (si le mot de passe n'est pas mémorisable facilement son premier mouvement sera de le changer)).

    Pour le mot de passe, on pourrait peut-être passer par une méthode séparée du modèle User de façon à ce que l'on ne puisse pas relire le mot de passe directement depuis le modèle User...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    • Proposé comme réponse Aurel Bera vendredi 14 septembre 2012 06:24
    • Marqué comme réponse marwa58 samedi 22 septembre 2012 13:31
    mercredi 25 juillet 2012 16:04
    Modérateur
  • Bonjour,

    Pouvons-nous considérer que vous avez résolu votre problème avec les scénarios proposés ? Dans l'affirmative, pourriez-vous partager avec nous la solution, afin que d'autres personnes avec le même problème puissent profiter de cette solution ?

    Désormais, nous marquons les solutions proposées. N'hésitez pas à revenir et supprimer la réponse marquée si la solution n’est pas correcte. Merci !

    Cordialement,

    Aurel


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    vendredi 14 septembre 2012 06:25