我正在尝试将电子邮件表单中的表单结果发送到设定目的地。我自己已经尝试了很多次尝试并且失败了。所以我发现了一个问题相同并且调整了答案以适应我的解决方案......我想..
我一直关注的答案来自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
业务出现了问题,但除此之外我已经失去了。
答案 0 :(得分:0)
Soooo ......答案其实非常简单。 Google阻止我使用“安全性较低的应用”中的帐户。 gmail中有一个选项,您可以打开以允许访问。无论如何,谢谢你的帮助。它确实引导我走向答案:)