2012-04-01 8 views
2

Ich möchte E-Mails mit einer MVC 3-Anwendung senden. Ich habe eine Benutzertabelle namens Prüfer in einer Datenbank mit E-Mail-Adressen. Was ich möchte ist, wenn ich 2-3 Benutzer aus der Tabelle in der Ansicht mit Kontrollkästchen auswählen, die E-Mail-Adresse für jeden Benutzer sollte automatisch in die "Textbox" auf der Feedback-Seite eingefügt werden, aber es funktioniert nicht. Es nimmt den Wert von Webmail.Send() von der Steuerung anstelle der Feedback-Formularseite. Irgendwelche Ideen?Senden von E-Mail mit MVC 3

[HttpPost] 
    public ActionResult Feedback(string email, string subject, string body) 
    { 
     try 
     { 
      WebMail.SmtpServer = "smtp.gmail.com"; 
      WebMail.EnableSsl = true; 
      WebMail.SmtpPort = 25; 
      WebMail.UserName = "[email protected]"; 
      WebMail.Password = "*******123"; 
      WebMail.From = "[email protected]"; 
      WebMail.Send(
        "[email protected]", 
        subject, 
        body, 
        email 
       ); 

      return RedirectToAction("FeedbackSent"); 
     } 
     catch (Exception ex) 
     { 
      ViewData.ModelState.AddModelError("_FORM", ex.ToString()); 
     } 

     return View(); 
    } 

Dies ist die Seite anzeigen Feedback:

@using(Html.BeginForm()) { 
    <table> 
    <tr> 
     <td>Your e-mail:</td> 
     <td>@Html.TextBox("email")</td> 
    </tr> 
    <tr> 
     <td>Subject:</td> 
     <td>@Html.TextBox("subject")</td> 
    </tr> 
    <tr> 
     <td>Body:</td> 
     <td>@Html.TextArea("body")</td> 
    </tr> 
    </table> 
    <input type="submit" value="Send" /> 
} 
+0

Was meinen Sie, wenn Sie sagen, dass es den Wert vom Controller nimmt? Dass die "von" E-Mail "myemail @ gmail.com" anstelle von was in das Formular eingegeben wurde? –

+0

Ich meine, wenn ich E-Mail sende, geht es von "[email protected]" zu "[email protected]". Aber ich möchte eine E-Mail von "[email protected]" an die Person (en) senden, die ich aus der Checkbox-Liste auf der Feedback-Seite auswähle. – Shaan

+0

Ich kann nicht finden, wo Sie die Ziel-E-Mails auswählen ... Ihr Controller hat nur eine E-Mail als Parameter und die anderen sind harcodiert. – Romias

Antwort

2

sollten Sie verwenden:

WebMail.From = "[email protected]"; 

und Verwendung:

WebMail.Send(
    email, 
    subject, 
    body 
); 

Oder Sie die Linie beseitigen könnte :

WebMail.Send(
    email, 
    subject, 
    body, 
    from: "[email protected]" 
); 

Mehr über die WebMail Klasse und was die Argumente zu WebMail.Send sind hier zu finden ist: WebMail Class on MSDN.