В моем коде ниже я пытаюсь создать контактную форму с полями, именами, фамилиями, email, комментариями. Когда кнопка отправки нажата, мне нужно отправить электронное письмо на мой адрес Gmail. Я просмотрел множество руководств, форумов, советов со всего мира. Большая часть моего кода основана на http://ryanbutler.org/content/aspmvcform/documents/aspmvccontactform.pdf и была изменена в областях, которые, как я думал, помогут получить это функционирование на основе других статей, которые я прочитал.Отправка электронной почты через контактную форму с помощью System.Net.Mail Asp.Net MVC C#
Моя среда:
IDE: Visual Studio 2013 Экспресс для Web
Использование IIS 8 Express
развертывания пойдет на Azure
Моя ОС: Windows 8.1
Сообщение об ошибке после нажатия отправить и заполнение заполните форму:
Ошибка. Во время обработки Вашего запроса произошла ошибка.
Мои вопросы: Что-то не в порядке с моим кодом? Или проблема может быть связана не с кодом, а с сервером IIS Express или с другой областью? Я спрашиваю об этом, потому что я где-то читал, что IIS Express не поддерживает SMTP.
Контролер:
using MySite.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Web;
using System.Web.Mvc;
namespace MySite.Controllers
{
public class SendMailerController : Controller
{
//
// GET: /SendMailer/
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Contact(ContactModels c)
{
if (ModelState.IsValid)
{
try
{
MailMessage msg = new MailMessage();
SmtpClient smtp = new SmtpClient();
msg.To.Add("[email protected]");
msg.Subject = "Contact Us";
msg.Body = "First Name: " + c.FirstName;
msg.Body += "Last Name: " + c.LastName;
msg.Body += "Email: " + c.Email;
msg.Body += "Comments: " + c.Comment;
msg.IsBodyHtml = false;
smtp.Host = "smtp.gmail.com";
smtp.Port = 25;
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false; //
smtp.Credentials = new NetworkCredential("[email protected]", "MyGmailPassword");
smtp.Host = "smtp.gmail.com";
smtp.Send(msg);
msg.Dispose();
return View("Success");
}
catch (Exception)
{
return View("Error");
}
}
return View();
}
}
}
Спасибо, это сработало! Я немного изменил его так, как мне нужно. Еще раз спасибо. – DevTec