2
respostas

Erro na hora de enviar E-mail

` Erro de Servidor no Aplicativo '/'. O servidor SMTP requer uma conexão segura ou o cliente não foi autenticado. A resposta do servidor foi: 5.7.0 Must issue a STARTTLS command first. f13sm5855602qkm.52 - gsmtp Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes da Exceção: System.Net.Mail.SmtpException: O servidor SMTP requer uma conexão segura ou o cliente não foi autenticado. A resposta do servidor foi: 5.7.0 Must issue a STARTTLS command first. f13sm5855602qkm.52 - gsmtp

Erro de Origem:

Linha 39: smtpClient.Timeout = 20_000; Linha 40: Linha 41: await smtpClient.SendMailAsync(mensagemDeEmail); Linha 42: } Linha 43: }

Arquivo de Origem: C:\Users\Samuray36\Desktop\Nova pasta\Nova pasta (2)\aspnet-identity-parte-2-aula-01\src\ByteBank.Forum\App_Start\Identity\EmailServico.cs Linha: 41

Estou com problemas para na hora do envio de e-mail , esta aparecendo o erro acima , estou usando minha conta do gmail e ja ativei a configuração para poder usar em aplicativos de terceiros

Poderiam me ajudar

2 respostas

Oi Gabriel, tudo bem?

Para poder enviar e-mails, o servidor de e-mail exige uma autenticação, além de SSL (Secure Sockets Layer). Como fazer isso?

  • Defina o valor de UseDefaultCredentials do SMTClient para False
  • Passe uma instância de NetworkCredential com usuário+senha para Credentials
  • Defina o valor de UseSSL para True
...
    client.Credentials = new NetworkCredential("<Usuario>", "<Senha>");
    client.UseDefaultCredentials = true;
    client.EnableSsl = true;
...

Marcelo , boa tarde

Segue minha classe de configuração de envio de e-mail Ja estou usando os parâmetros que você mencionou

using Microsoft.AspNet.Identity;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Threading.Tasks;
using System.Web;

namespace trabalho.Forum.App_Start.Identity
{
    public class EmailServico : IIdentityMessageService
    {
        private readonly string EMAIL_ORIGEM = ConfigurationManager.AppSettings["emailServico:email_remetente"];
        private readonly string EMAIL_SENHA = ConfigurationManager.AppSettings["emailServico:email_senha"];

        public async Task SendAsync(IdentityMessage message)
        {
            using (var mensagemDeEmail = new MailMessage())
            {
                mensagemDeEmail.From = new MailAddress(EMAIL_ORIGEM);

                mensagemDeEmail.Subject = message.Subject;
                mensagemDeEmail.To.Add(message.Destination);
                mensagemDeEmail.Body = message.Body;

                // SMTP - Simple Mail Transfer Protocol
                using (var smtpClient = new SmtpClient())
                {
                    smtpClient.UseDefaultCredentials = true;
                    smtpClient.Credentials = new NetworkCredential(EMAIL_ORIGEM, EMAIL_SENHA);

                    smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
                    smtpClient.Host = "smtp.gmail.com";
                    smtpClient.Port = 587;
                    smtpClient.EnableSsl = true;

                    smtpClient.Timeout = 20_000;

                    await smtpClient.SendMailAsync(mensagemDeEmail);
                }
            }
        }
    }
}

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software