none
besoin de direction (envoie mail asp.net mcv) RRS feed

  • Question

  • Bonjour,

    J'ai trouvé un code pour envoyer un mail à partir d'une application asp.net mvc mais je sais pas quoi mettre dans le controlleur et quoi mettre dans la vue. pouvez vous mieux me diriger s'il vous plait ? (je suis encore débutante)

    
    
    public static bool SendMail(string smtp_server, string smtp_port, string Subject, String Contenu, string MailFrom, string pwd, string MailTo)
            {
    
    
                System.Text.Encoding MyEncoding = System.Text.Encoding.GetEncoding("iso-8859-1");
                try
                {
                    MailAddress adrFrom = new MailAddress(MailFrom);
                    SmtpClient clientMail = new SmtpClient(smtp_server);
                    clientMail.Port = int.Parse(smtp_port);
    
                    clientMail.UseDefaultCredentials = false;
                    clientMail.EnableSsl = true;
                    clientMail.DeliveryMethod = SmtpDeliveryMethod.Network;
                    clientMail.Credentials = new System.Net.NetworkCredential(MailFrom, pwd);
    
                    MailMessage msg = new MailMessage();
                    msg.Body = Contenu.ToString();
                    msg.BodyEncoding = MyEncoding;
                    msg.Sender = new MailAddress(MailFrom);
                    msg.Subject = Subject;
                    msg.From = adrFrom;
                    msg.To.Add(new MailAddress(MailTo));
                    clientMail.Send(msg);
                    return true;
                }
                catch (Exception )
                {                
                    return false;
                }
            }


    • Modifié marwa5800 mercredi 8 août 2012 05:44
    vendredi 3 août 2012 05:12

Réponses

  • Bonjour,

    Dans votre contrôleur il suffit tout simplement d'écrire le code suivant :

    public ActionResult Valider(MvcApp.Models.User user)
    {
    SendEmail(user.Nom, user.Prenom,...)
    }

    Dans votre vue il faut spécifier au niveau du BeginForm(), le nom de votre contrôleur et l'action à déclencher :

    using (Html.BeginForm("MonController", "Valider"))
    {
       // ...
    }

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Marqué comme réponse marwa5800 mercredi 8 août 2012 05:41
    lundi 6 août 2012 22:31
    Modérateur
  • Bonjour,

    La méthode SendMail() est la méthode dont vous avez montrer le code dans votre question initiale.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    mardi 7 août 2012 09:49
    Modérateur

Toutes les réponses

  • Bonjour,

    Pouvez-vous nous montrer le code actuel de votre vue ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    dimanche 5 août 2012 21:15
    Modérateur
  • <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MvcApp.Models.User>" %>
    
    <!DOCTYPE html>
    <script runat="server">
    
    </script>
    <html>
    <head id="Head1" runat="server">
        <title>Index</title>
    
     <link href="../../monStyle.css" type="text/css"    rel="stylesheet" />
    </head>
    
    
    
    
    <body>
     
        <script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
    
        <script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
    
        <%using (Html.BeginForm())
    {
    %>
    
    <h2><center>Formulaire d'inscription</center></h2>
    
    
            <%: Html.ValidationSummary(true) %>
           
    
     <fieldset id="user-details"> 
      <legend>Informations personnelles</legend> 
    
    <label for="nom">Nom :</label>
        
     
                <div class="editor-field">
                    <%: Html.EditorFor(model => model.Nom) %>
                    <%: Html.ValidationMessageFor(model => model.Nom) %>
                </div>
        
            <label for="prenom">Prenom :</label>
                <div class="editor-field">
                    <%: Html.EditorFor(model => model.Prenom) %>
                    <%: Html.ValidationMessageFor(model => model.Prenom) %>
                </div>
        
    
           <label for="prenom">CIN :</label>
                <div class="editor-field">
                    <%: Html.EditorFor(model => model.NumCIN) %>
                    <%: Html.ValidationMessageFor(model => model.NumCIN) %>
                </div>
    
      
    
              <label for="DateNais">Date de naissance : </label>
                <div class="editor-field">
                    <%: Html.EditorFor(model => model.DateNais) %> (dd/mm/yyyy) 
                    <%: Html.ValidationMessageFor(model => model.DateNais) %>
                </div>
        
              
               <label for="Adresse">Adresse :</label>
                <div class="editor-field">
                    <%: Html.EditorFor(model => model.Adresse) %>
                    <%: Html.ValidationMessageFor(model => model.Adresse) %>
                </div>
        
              <label for="Ville">Ville :</label>
                <div class="editor-field">
                    <%: Html.EditorFor(model => model.Ville) %>
                    <%: Html.ValidationMessageFor(model => model.Ville) %>
                </div>
        
              
    <label for="CodePostal">Code Postal : </label>
                <div class="editor-field">
                    <%: Html.EditorFor(model => model.CodePostal) %>
                    <%: Html.ValidationMessageFor(model => model.CodePostal) %>
                </div>
        
        
     </fieldset>
     
    
    
     <fieldset id="Compte">  
      <legend>Compte</legend>
    
        
      <label for="Numtel">Numéro de telephone (identidiant): </label>
            <div class="editor-field">
                    <%: Html.EditorFor(model => model.NumTel) %>
                    <%: Html.ValidationMessageFor(model => model.NumTel) %>
                </div>
        
    
        <label for="AdresseEmail">Adresse e-mail : </label>
                <div class="editor-field">
                    <%: Html.EditorFor(model => model.AdresseEmail) %>
                    <%: Html.ValidationMessageFor(model => model.AdresseEmail) %>
                </div>
        
       
                <p>
            j'ai un  compte bancaire 
            <%= Html.RadioButton("CB", "Y", false) %> Oui 
            <%= Html.RadioButton("CB", "N", true) %> Non <br />
            <br />
                  <label for="NumCompte">  Si Oui, entrez le num de compte </label>
              
                <div class="editor-field">
                    <%: Html.EditorFor(model => model.NumCompte) %>
                    <%: Html.ValidationMessageFor(model => model.NumCompte) %>
                </div>
        
              
                  </p>
    
    
     
        <p><img src="/home/getcaptcha" /></p>
    
        
    
    
         <label for="CodePin">Please enter the number above : </label>
                <div class="editor-field">
                    <%: Html.EditorFor(model => model.CodePin) %>
                    <%: Html.ValidationMessageFor(model => model.CodePin)%>
                </div>
    
    
    <br />
              
              
     </fieldset > 
    
      
    
    <p align="center">
              
                     <label class="form_label_nostyle">&nbsp;</label>
            <input type="submit" value ="Valider" />
            <input type="reset" name="del" />
        
                  
                </p>
        
        <% } %>
        
    
        <div>
            <%: Html.ActionLink("Back to List", "Index") %>
        </div>
        </body>
    </html>
    
    
    Je veux que lorsque je clique sur le bouton "valider" un mail sera envoyé automatiquement vers l'adresse mail saisie
    lundi 6 août 2012 03:39
  • Bonjour,

    Dans votre contrôleur il suffit tout simplement d'écrire le code suivant :

    public ActionResult Valider(MvcApp.Models.User user)
    {
    SendEmail(user.Nom, user.Prenom,...)
    }

    Dans votre vue il faut spécifier au niveau du BeginForm(), le nom de votre contrôleur et l'action à déclencher :

    using (Html.BeginForm("MonController", "Valider"))
    {
       // ...
    }

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Marqué comme réponse marwa5800 mercredi 8 août 2012 05:41
    lundi 6 août 2012 22:31
    Modérateur
  • Bonjour,
    Et pour la méthode "SendMail", elle appartient à quelle classe ?
    mardi 7 août 2012 00:07
  • Bonjour,

    La méthode SendMail() est la méthode dont vous avez montrer le code dans votre question initiale.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    mardi 7 août 2012 09:49
    Modérateur
  • Bonsoir,

    mon problème est résolu ! merci :)

    • Modifié marwa5800 mercredi 8 août 2012 05:42
    mardi 7 août 2012 22:18