使用MVC 3发送电子邮件

时间:2012-04-01 13:31:19

标签: asp.net-mvc asp.net-mvc-3 email

我想使用MVC 3应用程序发送电子邮件。我在一个带有电子邮件地址的数据库中有一个名为Reviewer的用户表。我想要的是当我使用复选框从视图中的表中选择2-3个用户时,每个用户的电子邮件地址应自动插入到反馈视图页面的“文本框”中,但它不起作用。它从控制器而不是反馈表单页面获取Webmail.Send()的值。有什么想法吗?

 [HttpPost]
    public ActionResult Feedback(string email, string subject, string body)
    {
        try
        {
            WebMail.SmtpServer = "smtp.gmail.com";
            WebMail.EnableSsl = true;
            WebMail.SmtpPort = 25;
            WebMail.UserName = "myemail@gmail.com";
            WebMail.Password = "*******123";
            WebMail.From = "myemail@gmail.com";
            WebMail.Send(
                    "senderemail@yahoo.com",
                    subject,
                    body,
                    email 
                );

            return RedirectToAction("FeedbackSent");
        }
        catch (Exception ex)
        {
            ViewData.ModelState.AddModelError("_FORM", ex.ToString());
        }

        return View();
    }

这是反馈的查看页面:

@using(Html.BeginForm()) {
    <table>
    <tr>
        <td>Your e-mail:</td>
        <td>@Html.TextBox("email")</td>
    </tr>
    <tr>
        <td>Subject:</td>
        <td>@Html.TextBox("subject")</td>
    </tr>
    <tr>
        <td>Body:</td>
        <td>@Html.TextArea("body")</td>
    </tr>
    </table>
    <input type="submit" value="Send" />
}

1 个答案:

答案 0 :(得分:2)

你应该用这个:

WebMail.Send(
    email,
    subject,
    body
);

或者你可以消除这条线:

WebMail.From = "myemail@gmail.com";

并使用:

WebMail.Send(
    email,
    subject,
    body,
    from: "myemail@gmail.com"
);

有关WebMail课程的更多信息以及WebMail.Send的参数可以在此处找到:WebMail Class on MSDN