Como envio email em asp.net mvc

28/07/2015

0

Podem me dar do exemplo simples
de preenchendo manualmente os endereço e provedor de email
até os mas complexos que o usuario preenche.
Gabriel Queiroz

Gabriel Queiroz

Responder

Post mais votado

27/02/2019

Pessoal, eu fiquei uma semana tentando fazer o formulário funciona, e não enviava o e-mail de jeito nenhum! O que resolveu, vou tirar:

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

Lucas Genovez
Responder

Mais Posts

28/07/2015

Randrade

É uma coisa simples, se você quer enviar e-mail como um formulário de contato.

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
Responder

28/07/2015

Gabriel Queiroz

Vou tentar desta froma muito obrigado Randrade ja tem me ajdua bastante aqui no forum.
Responder

28/07/2015

Gabriel Queiroz

è que tenho uma ideia aqui exemplo tem agendamento no dia que chegar o agendamento , o usuario que agendou sera noutificado no email e se o agendamento nao passar a ser um atendimento ele continua mandando email de 5 em 5 minutos
Responder

21/02/2019

Lucas Genovez

Cara, não sei se estou fazendo certo, mas estou tendo problema com o tempo de envio! Alguém pode me ajudar ?

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>
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar