我正在使用来自 Nuget 的 ASP.Net MVC 4 和 MVCMailer 4.0。当我创建一条消息并将其发送到脚手架的欢迎消息时,一切正常,我能够发送电子邮件就好了(唯一的问题是它是纯文本的,因为我有 html)
当我使用联系表格发送消息时,我的问题就出现了。首先让我向您展示我拥有什么以及如何使用它:
/*UserMailer.cs*/
public virtual MvcMailMessage ContactForm(MailMessage mailmessage)
{
ViewBag.Name = mailmessage.Name;
ViewBag.Body = mailmessage.MessageBody;
return Populate(x =>
{
x.Subject = "Scheduler) " + mailmessage.Subject;
x.ViewName = "Contact Form";
x.To.Add("Hiva@Varyan.com");
});
}
现在来看视图
@*ContactForm.cshtml*@
<h2>ContactForm</h2>
<strong>Name: </strong> @ViewBag.Name <br />
<strong>Message: </strong> @ViewBag.Body
最后是实例化邮件程序并发送邮件的联系人控制器操作
//ContactController.cs
namespace Scheduler.Controllers
{
public class ContactController : Controller
{
//
// GET: /Contact/
private IUserMailer _userMailer = new UserMailer();
public IUserMailer UserMailer
{
get { return _userMailer; }
set { _userMailer = value; }
}
public ActionResult Index()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(MailMessage _mailMessage)
{
UserMailer.ContactForm(_mailMessage).Send();
return View();
}
}
}
只是为了完整性,我也会包括我的模型
//MailMessage.cs
namespace Scheduler.Model
{
public class MailMessage
{
public string Name { get; set; }
public string EmailAddress { get; set; }
public string Subject { get; set; }
public string MessageBody { get; set; }
}
}
好的,所以我遇到了多个问题:
- 这段代码以某种方式生成了 2-3 份电子邮件副本,以防万一我在单击表单上的提交按钮时非常小心。
- 消息的所有副本,包含正确的发件人电子邮件地址、主题,但它根本没有任何正文(消息实际上在我的手机上显示为“此消息没有内容”)
- 最后,当我确实让它工作时(当我第一次实现它时,我一辈子都看不到我做了什么让它停止工作)它以纯文本而不是 html 形式发送所有消息。
我刚刚开始学习 ASP.Net MVC,如果有任何关于如何正确实现上述内容的指示,将不胜感激。