2013-05-16 47 views
0

我正在寻找一种发送电子邮件的方式,当我单击我的查看页面上的按钮时。如何在点击按钮后发送电子邮件

在我的视图页面我有一个文本框,用户可以在邮件从接收

@Html.TextBoxFor(m => m.ReceiverMail, new { @placeholder="E-mail reveiver"}) 

电子邮件必须发送到它在文本框填写电子邮件填写点击按钮后。

<input type="submit" class="btn btn-large btn-success" value="Send mail" /> 

发送者可以在他的电子邮件也填写在文本框

@Html.TextBoxFor(m => m.SenderMail, new { @placeholder="E-mail sender"})  

邮件的文本可以是这样的:“这是(SenderMail)测试电子邮件” 谁可以举个简单的例子吗?

+0

http://stackoverflow.com/questions/1415205/how-to-send-email-by-using-javascript-or-jquery – ediblecode

回答

0

创建一个控制器和一个操作文章。

[HttpPost] 
public ActionResult myaction(string ReceiverMail) 
{ 
    if (ModelState.IsValid) 
    { 
     // .. 

     new mailController().sendMail(ReceiverMail).Deliver(); // Send mail 
     return RedirectToRoute("Usuario_default", new RouteValueDictionary { { "controller", "home" }, { "action", "logon" } }); 
    } 

    Response.StatusCode = (int)HttpStatusCode.BadRequest; 
    return View(viewModel); 
} 

使用ActionMailer发送电子邮件。

0

首先,你可以创建控制器扩展方法:

public static partial class ControllerExtensions 
    { 
     public static string RenderPartialViewToString(this ControllerBase controller, string partialPath, object model) 
     { 
      if (string.IsNullOrEmpty(partialPath)) 
       partialPath = controller.ControllerContext.RouteData.GetRequiredString("action"); 

      controller.ViewData.Model = model; 

      using (StringWriter sw = new StringWriter()) 
      { 
       ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, partialPath); 
       ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw); 
       // copy model state items to the html helper 
       foreach (var item in viewContext.Controller.ViewData.ModelState) 
        if (!viewContext.ViewData.ModelState.Keys.Contains(item.Key)) 
        { 
         viewContext.ViewData.ModelState.Add(item); 
        } 


       viewResult.View.Render(viewContext, sw); 

       return sw.GetStringBuilder().ToString(); 
      } 
     } 
    } 

然后,创建接收SENDEREMAIL receiverEmail的控制器操作方法。 然后创建模板变量

var template= this.RenderPartialViewToString("MailToSend", model); 

这会将View MailToSend转换为字符串。

后,您可以使用类MAILMESSAGE发送电子邮件:

 SmtpClient client = new SmtpClient(); 
     client.Host = "smtp.gmail.com"; //if your email is gmail 
     client.Port = 25; 
     client.UseDefaultCredentials = false; 
     client.Credentials = smtpCrede; 
     client.EnableSsl = true; 

     MailMessage message = new MailMessage(); 
     message.From = new MailAddress(here goes email"); 
     message.To.Add(new MailAddress(email)); 
     message.IsBodyHtml = true; 
     message.Body = template; 
     client.Send(message); 
     return true; 

而且还声明:

 private NetworkCredential smtpCrede = new NetworkCredential("your email, "your email password"); 

操作方法之外。

相关问题