在MVC中发送自动电子邮件

时间:2016-12-05 09:51:14

标签: asp.net-mvc email

我正在尝试将电子邮件表单中的表单结果发送到设定目的地。我自己已经尝试了很多次尝试并且失败了。所以我发现了一个问题相同并且调整了答案以适应我的解决方案......我想..

我一直关注的答案来自asp.net mvc 4 Send form from site to email

当我单击表单上的提交按钮时,它检索数据没问题。问题在于发送电子邮件。

我的代码目前看起来像这样......

型号:

namespace Domain.Models
{
    public class Event
    {

        public int? ArrangerId { get; set; }
        public Arranger Arranger { get; set; }
    }
}

它继续这样。这是一个很长的清单,但它都是一样的。

查看:

@model Domain.Models.Event
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

@using (Html.BeginForm("Submit", "EventSubmission"))
{
    <h3>Your contact details</h3>

    <h5>Name</h5>
    @Html.TextBoxFor(o => o.Arranger.Contact_Name);
    <br />
    <h5>Email address</h5>
    @Html.TextBoxFor(o => o.Arranger.Contact_Phone);
    <br/>
    <h5>Phone number</h5>
    @Html.TextBoxFor(o => o.Arranger.Contact_Email);
    ......
}

再次,以同样的方式进行

控制器:

namespace EventsMap.Controllers
{
    public class EventSubmissionController : Controller
    {
        public ActionResult Index()
        {
            return View(new Event());
        }



        [HttpGet]
        public ActionResult Submit()
        {
            return View();
        }


        [HttpPost]
        public ActionResult Submit(Event ev)
        {
            string Text = "<html> <head> </head>" +
            " <body style= \" font-size:12px; font-family: Arial\">" +
            ev.Location.Postcode +
            "</body></html>";

            SendEmail("TestEmail@gmail.com", Text);
            Event tempForm = new Event();
            return View(tempForm);
        }


        public static bool SendEmail(string SentTo, string Text)
        {
            MailMessage msg = new MailMessage();

            msg.From = new MailAddress("TestEmail@gmail.com");
            msg.To.Add(SentTo);
            msg.Subject = "subject";
            msg.Body = Text;
            msg.Priority = MailPriority.High;
            msg.IsBodyHtml = true;

            SmtpClient client = new SmtpClient("smtp.gmail.com", 587);



            client.UseDefaultCredentials = false;
            client.EnableSsl = false;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            //client.EnableSsl = true;

            try
            {
                client.Send(msg);
            }
            catch (Exception)
            {
                return false;
            }
            return true;
        }


    }
}
  

我回来的例外是“发送邮件失败”,“无法发送邮件”   连接到远程服务器“,”尝试访问套接字   以某种方式禁止其访问权限64.233.166.109:587“

显然,smtp业务出现了问题,但除此之外我已经失去了。

1 个答案:

答案 0 :(得分:0)

Soooo ......答案其实非常简单。 Google阻止我使用“安全性较低的应用”中的帐户。 gmail中有一个选项,您可以打开以允许访问。无论如何,谢谢你的帮助。它确实引导我走向答案:)

相关问题