C# 发送包含数据的电子邮件(ASP.NET mvc)
我需要通过点击按钮发送电子邮件 我为电子邮件制作模型C# 发送包含数据的电子邮件(ASP.NET mvc),c#,asp.net,asp.net-mvc,email,C#,Asp.net,Asp.net Mvc,Email,我需要通过点击按钮发送电子邮件 我为电子邮件制作模型 public class MailModel { public string From { get; set; } public string To { get; set; } public string Subject { get; set; } public string Body { get; set; } public bool IsShowAlert { get; set; } } 并在控制
public class MailModel
{
public string From { get; set; }
public string To { get; set; }
public string Subject { get; set; }
public string Body { get; set; }
public bool IsShowAlert { get; set; }
}
并在控制器中这样制作方法
[HttpPost]
public ViewResult Index(Models.MailModel _objModelMail)
{
if (ModelState.IsValid)
{
MailMessage mail = new MailMessage();
mail.To.Add(_objModelMail.To);
mail.From = new MailAddress(_objModelMail.From);
mail.Subject = _objModelMail.Subject;
string Body = _objModelMail.Body;
mail.Body = Body;
mail.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.Port = 587;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new System.Net.NetworkCredential
("suhomlin.eugene95@gmail.com", "dontoretto23");// Enter seders User name and password
smtp.EnableSsl = true;
smtp.Send(mail);
return View("Index", (IEnumerable<Clients>) _objModelMail);
}
else
{
return View();
}
}
如何做到这一点?模型旨在从UI来回传递数据。在这种情况下,您并不是真正从用户那里收集信息。你已经有了 有几种方法可以做到这一点。我个人建议您执行一个操作,获取id、提取用户信息并创建电子邮件:
public ActionResult SendEmail(int id)
{
//Retrieve the user data and create e-mail here.
return RedirectToAction("Index","YourController");
}
请注意末尾的重定向,将用户发送回触发电子邮件发送的视图
那么在你看来,
@Html.ActionLink("Send E-mail", "SendEmail", new {id = item.ID})
这是一个过于简化的版本,你应该考虑某些事情,比如安全和帖子,但我想你会有这个想法……-——)p> 在此处发布您的观点我希望您不仅仅发布您的电子邮件凭据。哈哈,不,当然@juanUpdate my post@teovankotI没有看到
元素,我也没有看到任何按钮。我确实看到了一些链接。如果您试图向服务器发送任何用户输入,您需要一个带有“提交”按钮的表单。据我所知,我需要具有“发送电子邮件”视图,但我希望直接从此服务器发送电子邮件view@E.S:否定。发送电子邮件后,只需将用户重定向到您之前执行的操作(可能是“索引”)。我正在更新我的答案,以说明我提到的重定向。
public ActionResult SendEmail(int id)
{
//Retrieve the user data and create e-mail here.
return RedirectToAction("Index","YourController");
}
@Html.ActionLink("Send E-mail", "SendEmail", new {id = item.ID})