none
Enviar e-mail no servidor (C#) RRS feed

  • Pergunta

  • Bom dia,

    Eu estou desenvolvendo uma aplicação web, onde o usuário envia um email.

    Quando testo via localhost funciona perfeitamente, mas quado subo no servidor, sempre dá erro.

    Eu já liberei a porta 587 no firewall, o que preciso fazer mais?


    O erro que está dando é esse aqui:

    The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. 

    • Editado Rooh Campos quinta-feira, 27 de março de 2014 13:47
    quinta-feira, 27 de março de 2014 13:27

Todas as Respostas

  • Como está o seu codigo o parametro UseDefaultCredentials, provavelmente quem está tentando acesar não tem permissão.
    quinta-feira, 27 de março de 2014 14:01
  • Fala Rooh, blz?

    Alguns servidores smtp exigem ssl. Se você estiver usando o Sytem.Net.Mail para enviar-los, verifique se o servidor destinatário requer ssl, se sim, no seu objeto SmtpClient você deve setar a propriedade EnableSssl para True. 

    Espero que ajude.

    Wennder Santos



    quinta-feira, 27 de março de 2014 14:03
  • Rooh, verifique esse link: http://www.c-sharpcorner.com/UploadFile/sourabh_mishra1/sending-an-e-mail-using-Asp-Net-mvc/

    Nele o cara explica certinho os pontos para envio de um email pela aplicação, é muito bom o tutorial. 

    Explica inclusive o quesito de autenticação que é o seu caso. 

    Nesse link ele te mostra esse código, que adiantando você pode utilizar para um batimento com o seu. 

    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;
                    SmtpClient smtp = new SmtpClient();
                    smtp.Host = "smtp.gmail.com";
                    smtp.Port = 587;
                    smtp.UseDefaultCredentials = false;
                    smtp.Credentials = new System.Net.NetworkCredential
                    ("username", "password");// Enter seders User name and password
                    smtp.EnableSsl = true;
                    smtp.Send(mail);

    Espero que ajude. 

    Abraço.

    • Sugerido como Resposta Roberson Naves sexta-feira, 28 de março de 2014 16:39
    quinta-feira, 27 de março de 2014 14:46
  • Complementando a resposta do Fernando,

    não são todos o servidores SMTP que exigem SSL. Se você passar esse parâmetro como True para um SMTP que não exige, quando você executar o comando Send uma exception será lançada.

    Nesse exemplo vai funcionar porque o gmail exige.

    Wennder Santos

    • Sugerido como Resposta Roberson Naves sexta-feira, 28 de março de 2014 16:39
    quinta-feira, 27 de março de 2014 15:30
  • Olá Rooh,

    conseguiu resolver?

    Wennder Santos

    terça-feira, 1 de abril de 2014 12:26
  • Acaso não teria que habilitar o ssl?

    smtp.EnableSsl = true;

    sábado, 16 de abril de 2016 05:03