2013-05-16 82 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"); 

操作方法之外。

相關問題