MVCMailer发送多个没有正文的消息

时间:2013-01-10 08:01:43

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 mvcmailer

我正在使用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

最后,Contact Controller操作实例化邮件程序并发送邮件

   //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; }
       }
   }
好的,所以我遇到了多个问题:

  1. 此代码以某种方式生成2-3份电子邮件,以防万一我甚至非常小心点击表单上的提交按钮。
  2. 邮件的所有副本,包含正确的发件人电子邮件地址,主题但它根本没有任何正文(邮件实际上显示为“此邮件没有内容”在我的手机上)
  3. 最后,当我确实有它工作时(当我第一次实现它时,我不能在我的生活中看到我为它停止工作所做的事情)它将所有消息作为纯文本而不是html发送。 / LI>

    我刚开始学习ASP.Net MVC,如果有任何关于如何正确实现上述内容的指示,将不胜感激。

1 个答案:

答案 0 :(得分:2)

对不起,我错误地在x.ViewName中放置了一个空格,因为它真的很晚才找到它。