Como envio email em asp.net mvc
28/07/2015
0
de preenchendo manualmente os endereço e provedor de email
até os mas complexos que o usuario preenche.
Gabriel Queiroz
Post mais votado
27/02/2019
smtp.Port = 465;
Se fizerem isso, você vai conseguir enviar para qualquer plataforma de e-mail, seja ela LocalWeb, Outlook, Gmail etc! Espero ter ajudado...
Lucas Genovez
Mais Posts
28/07/2015
Randrade
Primeiro, crie um Model para obter os dados necessários para o envio do e-mail.
public class MailModel { public string From { get; set; } public string To { get; set; } public string Subject { get; set; } public string Body{ get; set; } }
Depois, crie um controller para enviar o e-mail:
using System; using System.Collections.Generic; using System.Linq; using System.Net.Mail; using System.Web; using System.Web.Mvc; namespace SendMail.Controllers { public class SendMailerController : Controller { // // GET: /SendMailer/ public ActionResult Index() { return View(); } [HttpPost] public ViewResult Index(SendMail.Models.MailModel _objModelMail) { if (ModelState.IsValid) { //Instância classe email MailMessage mail = new MailMessage(); mail.To.Add(_objModelMail.To); mail.From = new MailAddress(_objModelMail.From); mail.Subject = _objModelMail.Subject; string Body = _objModelMail.Body; mail.Body = Body; mail.IsBodyHtml = true; //Instância smtp do servidor, neste caso o gmail. SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.gmail.com"; smtp.Port = 587; smtp.UseDefaultCredentials = false; smtp.Credentials = new System.Net.NetworkCredential ("username", "password");// Login e senha do e-mail. smtp.EnableSsl = true; smtp.Send(mail); return View("Index", _objModelMail); } else { return View(); } } } }
E em sua view, você adiciona os campos para contato e mensagem, desta forma:
@model SendMail.Models.MailModel @{ ViewBag.Title = "Index"; } <h2>Index</h2> <fieldset> <legend> Send Email </legend> @using (Html.BeginForm()) { @Html.ValidationSummary() <p>From: </p> <p>@Html.TextBoxFor(m=>m.From)</p> <p>To: </p> <p>@Html.TextBoxFor(m=>m.To)</p> <p>Subject: </p> <p>@Html.TextBoxFor(m=>m.Subject)</p> <p>Body: </p> <p>@Html.TextAreaFor(m=>m.Body)</p> <input type ="submit" value ="Send" /> } </fieldset>
Note que na View temos os campos declarados no Model.
From, To, Subject, Body.
Ao clicar em enviar, o e-mail será enviado para o e-mail declarado no campo "To".
Vou deixar mais alguns links com tutoriais, caso seja necessário:
Sending an e-mail using Asp.Net MVC
how to send e-mail in asp.net mvc
28/07/2015
Gabriel Queiroz
28/07/2015
Gabriel Queiroz
21/02/2019
Lucas Genovez
public class MailModel { public string From { get; set; } public string To { get; set; } public string Subject { get; set; } public string Body { get; set; } }
using System; using System.Collections.Generic; using System.Linq; using System.Net.Mail; using System.Web; using System.Web.Mvc; namespace SendMail.Controllers { public class SendMailerController : Controller { // // GET: /SendMailer/ public ActionResult Index() { return View(); } [HttpPost] public ViewResult Index(SendMail.Models.MailModel _objModelMail) { if (ModelState.IsValid) { //Instância classe email MailMessage mail = new MailMessage(); mail.To.Add("contato@eletricanovaes.com.br"); mail.From = new MailAddress("contato@eletricanovaes.com.br"); mail.Subject = _objModelMail.Subject; string Body = _objModelMail.Body; mail.Body = Body; mail.IsBodyHtml = true; //Instância smtp do servidor, neste caso o gmail. SmtpClient smtp = new SmtpClient(); smtp.Host = "email-ssl.com.br"; smtp.Port = 465; smtp.UseDefaultCredentials = false; smtp.Credentials = new System.Net.NetworkCredential ("contato@eletricanovaes.com.br", "contato@200");// Login e senha do e-mail. smtp.EnableSsl = true; smtp.Send(mail); return View("Index", _objModelMail); } else { return View(); } } } }
@model SendMail.Models.MailModel
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<fieldset>
<legend>
Send Email
</legend>
@using (Html.BeginForm())
{
@Html.ValidationSummary()
<p>From: </p>
<p>@Html.TextBoxFor(m => m.From)</p>
<p>To: </p>
<p>@Html.TextBoxFor(m => m.To)</p>
<p>Subject: </p>
<p>@Html.TextBoxFor(m => m.Subject)</p>
<p>Body: </p>
<p>@Html.TextAreaFor(m => m.Body)</p>
<input type="submit" value="Send" />
}
</fieldset>
Clique aqui para fazer login e interagir na Comunidade :)