none
Formulário de Contato com validação. RRS feed

Respostas

  • Para a locaweb você tem que fazer o seguinte:

    http://ajuda.locaweb.com.br/pt-br/Envio_de_e-mails_via_.NET_utilizando_o_System.Net.Mail

    Eles não permitem autenticação externa, então você precisa autenticar local, e sendo assim você só vai obter sucesso no envio do E-mail com a página hospedada lá.

    É meio chato ficar subindo o site para ter que testar, mas é o jeito.

    Abraços,


    André Baltieri
    MTAC – Microsoft Technical Audience Contributor

    Twitter: @andrebaltieri
    Blog: http://andrebaltieri.net

    quinta-feira, 4 de outubro de 2012 13:00

Todas as Respostas

  • Rodrigo, está usando ASP.NET Web Forms ou MVC?
    Você não consegue recuperar os valores do formulário ou você recupera os valores e não consegue enviar via E-mail?

    Caso esteja usando ASP.NET Web Forms, provavelmente você terá um evento no seu botão enviar onde pode realizar o seguinte:

    Recuperar os campos utilizando por exemplo:
    String nome = txtNome.Text

    E posteriormente, realizar o envio do E-mail
    Neste site mostra N formas de envio de E-mail: http://systemnetmail.com

    Caso esteja utilizando ASP.NET MVC você pode recuperar uma entidade direto no seu método:
    public ActionResult EnviaEmail(SendMailViewModel entity)

    E depois realizar o envio do E-mail como mencionado acima.

    Ou pode recuperar valores através do Request.Form["ID DO SEU OBJETO HTML"] e depois enviar os dados.

    Preciso de mais informações para te ajudar


    André Baltieri
    MTAC – Microsoft Technical Audience Contributor

    Twitter: @andrebaltieri
    Blog: http://andrebaltieri.net

    quarta-feira, 3 de outubro de 2012 15:26
  • Opa. Valeu pela ajuda cara!

    Seguinte, eu rodo a aplicação preencho os dados do form. Inclusive a validação está 100%. Quando clico em enviar, a página é atualizada, retorna a mensagem "Thanks! We'll get back to you soon." e não limpa os dados que digitei. Daí quando vou verificar no e-mail, nada chegou.

    Então, estou usando ASP.NET MVC 3 e Razor engine. Andei lendo uns outros tutoriais, e alguns mencionam uma alteração no web.config. Neste exemplo que mencionei na pergunta do tópico, o cara não cita nada a respeito. Será que é aí o erro?

    quarta-feira, 3 de outubro de 2012 16:05
  • Problema deve ser o seguinte, ou filtro de Spam, verifica a lixeira, ou autenticação.
    O Hotmail por exemplo não permite autenticação externa, alguns servidores como locaweb também não.

    Você fez estes testes da sua máquina? Se sim, experimenta subir o site para seu servidor, se é que ele usa o mesmo servidor para envio de E-mails.

    Abraços,


    André Baltieri
    MTAC – Microsoft Technical Audience Contributor

    Twitter: @andrebaltieri
    Blog: http://andrebaltieri.net

    quarta-feira, 3 de outubro de 2012 16:45
  • Você configurou a seção SMTP no web.config?

    Baixe este aplicativo http://antix.co.uk/Projects/SMTP-Server-For-Developers. É ótimo para testar envio de emails seja em qualquer tipo de programa que você está desenvolvendo.

    Poste o código da sua action que envia o formulário para avaliarmos.

    quarta-feira, 3 de outubro de 2012 18:57
    Moderador
  • Então cara, eu não configurei não.

    Aqui o código:

            public ActionResult Contact()
            {
                return View();
            }
    
            [HttpPost]
            public ActionResult Contact(Contact model)
            {
                string message = "There are a few errors";
    
                if (ModelState.IsValid)
                {
                    message = "Thanks! We'll get back to you soon.";
                }
    
                if (Request.IsAjaxRequest())
                {
                    return new JsonResult { ContentEncoding = Encoding.UTF8, Data = new { success = true, message = message } };
                }
    
                TempData["Message"] = message;
    
                return View();
            }


    quarta-feira, 3 de outubro de 2012 19:49
  • Vc esta mandando o e-mail como?

    Eu usei o Helper WebMail e funcionou perfeitamente.

    aqui tem um exemplo

    http://www.macoratti.net/12/05/asp_wbm1.htm

    quarta-feira, 3 de outubro de 2012 20:04
  • Faltou você enviar o E-mail...

    if(ModelState.IsValid)

      

    {

    try
        {
            WebMail.SmtpServer = "my.smtp.server";
            WebMail.Send(
                    "feedback[at]mycompany.domain",
                    subject,
                    body,
                    email
                );
     
            return RedirectToAction("ACTION");
        }
        catch (Exception ex)
        {
            LOGAR O ERRO
        }

    }


    Abraços,


    André Baltieri
    MTAC – Microsoft Technical Audience Contributor

    Twitter: @andrebaltieri
    Blog: http://andrebaltieri.net

    quarta-feira, 3 de outubro de 2012 21:00
  • Galera, muito obrigado pela ajuda de todos! Era o que o Baltieri havia dito, porém a questão agora é com a autenticação. Como ele citou, eu uso servidor locaweb. E quando tento enviar o formulário, aparece o seguinte erro:

    System.Net.Mail.SmtpException: Bad sequence of commands. The server response was: 5.0.3 <187-78-000-000.user.veloxzone.com.br[187.78.000.000]>: Client host rejected: Para envio de mensagens e necessaria autenticacao. Para saber como corrigir este erro acesse: http://wiki.locaweb.com/pt-br/Mobimail_/_Locamail_-_Envio_Autenticado /This mail server requires authentication at System.Net.Mail.RecipientCommand.CheckResponse(SmtpStatusCode statusCode, String response) at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, Boolean allowUnicode, SmtpFailedRecipientException& exception) at System.Net.Mail.SmtpClient.Send(MailMessage message) at System.Web.Helpers.WebMail.Send(String to, String subject, String body, String from, String cc, IEnumerable`1 filesToAttach, Boolean isBodyHtml, IEnumerable`1 additionalHeaders)...

    Essa página que eles passam (http://wiki.locaweb.com/pt-br/Mobimail_/_Locamail_-_Envio_Autenticado) não existe mais.

    quarta-feira, 3 de outubro de 2012 23:05
  • Para a locaweb você tem que fazer o seguinte:

    http://ajuda.locaweb.com.br/pt-br/Envio_de_e-mails_via_.NET_utilizando_o_System.Net.Mail

    Eles não permitem autenticação externa, então você precisa autenticar local, e sendo assim você só vai obter sucesso no envio do E-mail com a página hospedada lá.

    É meio chato ficar subindo o site para ter que testar, mas é o jeito.

    Abraços,


    André Baltieri
    MTAC – Microsoft Technical Audience Contributor

    Twitter: @andrebaltieri
    Blog: http://andrebaltieri.net

    quinta-feira, 4 de outubro de 2012 13:00
  • Putz! vai ter que ser assim então. rs

    Valeu pela de todos! 

    Abraços e muito obrigado!

    quinta-feira, 4 de outubro de 2012 13:15