none
Envio de E-mail ASP.NET MVC RRS feed

  • Pergunta

  • Bom dia!

    Estou com problemas no envio de e-mail por um formulário, já reescrevi por diversas vezes o código e o e-mail não é

    enviado e nem da erro. Alguém pode ajudar?

    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.Web;
    
    namespace Projeto.Web.Models
    {
        public class ContatoModels
        {
            [Required(ErrorMessage = "O campo deve ser preenchido")]
            public string Nome { get; set; }
            [Required(ErrorMessage="O campo E-mail é obrigatório")]
            public string Email { get; set; }
            [Required(ErrorMessage="O campo telefone é obrigatório")]
            public string Telefone { get; set; }
    
            [Required(ErrorMessage = "O campo de mensagem é obrigatório")]
            public string Mensagem { get; set; }
    
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Net.Mail;
    using Medicine.Web.Models;
    using System.Text;
    using System.Net;
    
    namespace Projeto.Web.Controllers
    {
        public class ContatoController : Controller
        {
            //
            // GET: /Contato/
            public ActionResult Index()
            {
                ViewBag.MostraSlide = false;
                return View();
            }
    
            [HttpPost]
            public ActionResult Contact(ContatoModels c)
            {
    
                 if (ModelState.IsValid)
                {
                    try
                    {
    
                        MailMessage msg = new MailMessage();
                        SmtpClient smtp = new SmtpClient();
                        MailAddress from = new MailAddress(c.Email.ToString());
                        StringBuilder sb = new StringBuilder();
                        msg.IsBodyHtml = false;
                        SmtpClient client = new SmtpClient();
                        client.Credentials = new System.Net.NetworkCredential("teste@gmail.com", "teste");
                        client.EnableSsl = true;
                        smtp.Host = "smtp.gmail.com";
                        smtp.UseDefaultCredentials = false;
                        smtp.Port = 587;
          
                        msg.From = from;
                        msg.Subject = "Contato pelo site Medicine Cursos";
                        sb.Append("Nome: " + c.Nome);
                        sb.Append(Environment.NewLine);
                        sb.Append("E-mail: " + c.Email);
                        sb.Append(Environment.NewLine);
                        sb.Append("Telefone: " + c.Telefone);
                        sb.Append(Environment.NewLine);
                        sb.Append("Mensagem: " + c.Mensagem);
                        msg.Body = sb.ToString();
                        smtp.Send(msg);
                        msg.Dispose();
                        return View("Index");
                    }
    
                    catch (Exception)
                    {
                        return View("Index");
                    }
    
            }
         return View();
        }
    }
    }

    @model Projeto.Web.Models.ContatoModels
    
    @{
        ViewBag.Title = "Contato";
        Layout = "~/Views/Shared/MasterTopBottom.cshtml";
    }
    
    
    <div class="span6" style="margin-top: 20px">
    
                                <h6>Formulário de Contato</h6>
                                @using (Html.BeginForm("Index", "Contato"))
                                {
                                    @Html.ValidationSummary(true)
    
                                    <div class="span12">
                                        <ul class="nav nav-list" style="color:#4F4F4F">
                                            <li style="font-size:12px;">
                                                <p>Se preferir, envie uma mensagem através do formulário:</p>
                                            </li>
                                            <li style="font-size:10px;"><i>(*preenchimento obrigatório)</i></li>
                                        </ul>
                                    </div>
    
                                    <div class="control-group">
                                        <label class="control-label" for="nome" style="color:#1E90FF;">
                                            Nome*
                                        </label>
                                        <div class="controls controls-row">
    
                                            @Html.EditorFor(model => model.Nome)
                                            @Html.ValidationMessageFor(model => model.Nome)
                                        </div>
                                    </div>
    
                                    <div class="control-group">
                                        <label class="control-label" for="nome" style="color:#1E90FF;">
                                            Email*
                                        </label>
                                        <div class="controls controls-row">
                                            @Html.EditorFor(model => model.Email)
                                            @Html.ValidationMessageFor(model => model.Email)
                                        </div>
                                    </div>
    
    
                                    <div class="control-group">
                                        <label class="control-label" for="nome" style="color:#1E90FF;">
                                            Telefone*
                                        </label>
                                        <div class="controls controls-row">
                                            @Html.EditorFor(model => model.Telefone)
                                            @Html.ValidationMessageFor(model => model.Telefone)
                                           
                                        </div>
                                    </div>
    
    
                                    <div class="control-group">
                                        <label class="control-label" for="mensagem" style="color:#1E90FF;">
                                            Mensagem*
                                        </label>
                                        <div class="controls controls-row">
                                            @Html.TextAreaFor(model => model.Mensagem)
                                            @Html.ValidationMessageFor(model => model.Mensagem)
                                        </div>
                                    </div>
                                    <p><input type="submit" class="btn btn-large btn-info" value="Enviar" /></p>
    
                                }
    
    
                            </div>
    
    
                        </div>
    
                    </div>
    
                </div>
            </div>
     



    Marco Brito Web Developer


    • Editado MarcoBritto terça-feira, 5 de julho de 2016 14:22
    terça-feira, 5 de julho de 2016 14:22

Respostas

  • Bom dia,

    Marco, você depurou? Da maneira como você está tratando o erro não vai perceber quando o erro ocorrer.
    Altere o bloco "catch":

    catch (Exception)
    {
        throw new Exception();
    }
    Verifica se vai dar erro.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Marcado como Resposta MarcoBritto quinta-feira, 28 de julho de 2016 16:31
    terça-feira, 5 de julho de 2016 14:48

Todas as Respostas

  • Bom dia,

    Marco, você depurou? Da maneira como você está tratando o erro não vai perceber quando o erro ocorrer.
    Altere o bloco "catch":

    catch (Exception)
    {
        throw new Exception();
    }
    Verifica se vai dar erro.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Marcado como Resposta MarcoBritto quinta-feira, 28 de julho de 2016 16:31
    terça-feira, 5 de julho de 2016 14:48
  • Era isso mesmo :)

    Marco Brito Web Developer

    quinta-feira, 28 de julho de 2016 16:32