Quero enviar um e-mail do meu aplicativo e escrevi o seguinte código para enviar e-mail
MailMessage msg = new MailMessage();
msg.From = new MailAddress("mymailid");
msg.To.Add("receipientid");
msg.Subject = "test";
msg.Body = "Test Content";
msg.Priority = MailPriority.High;
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("mymailid", "mypassword", "smtp.gmail.com");
client.Host = "smtp.gmail.com";
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.UseDefaultCredentials = true;
client.Send(msg);
Estou executando no localhost, então que erro estou cometendo ao enviá-lo.
Quando eu envio o botão dá um erro como
O servidor SMTP requer uma conexão segura ou o cliente não foi autenticado. A resposta do servidor foi: 5.5.1 Autenticação necessária.
Código no arquivo Web.config
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="smtpServer" value="smtp.gmail.com" />
<add key="EnableSsl" value = "true"/>
<add key="smtpPort" value="587" />
<add key="smtpUser" value="[email protected]" />
<add key="smtpPass" value="mypassword" />
<add key="adminEmail" value="[email protected]" />
</appSettings>
<system.net>
<mailSettings>
<smtp from="[email protected]">
<network host="smtp.gmail.com" password="mypassword" port="587" userName="[email protected]" enableSsl="true"/>
</smtp>
</mailSettings>
</system.net>
o que devo fazer para resolver este erro e enviar e-mail ??
Respostas:
Primeiro verifique se há problemas relacionados à segurança do gmail. Você pode ter habilitado a autenticação dupla no gmail. Além disso, verifique sua caixa de entrada do gmail se estiver recebendo alertas de segurança. Nesses casos, verifique outra resposta de @mjb como abaixo
Abaixo está o item muito geral que sempre verifico primeiro para esses problemas
defina-o como falso.
Observe a resposta de @Joe King - você deve definir client.UseDefaultCredentials antes de definir client.Credentials
fonte
Eu tenho o mesmo problema.
Eu encontrei esta solução:
O Google pode bloquear tentativas de login de alguns aplicativos ou dispositivos que não usam padrões de segurança modernos. Como esses aplicativos e dispositivos são mais fáceis de invadir, bloqueá-los ajuda a manter sua conta mais segura.
Alguns exemplos de aplicativos que não são compatíveis com os padrões de segurança mais recentes incluem:
Portanto, você deve habilitar o login menos seguro (ou acesso de aplicativo menos seguro ) em sua conta do Google.
Depois de entrar na conta do Google, vá para:
https://www.google.com/settings/security/lesssecureapps
ou
https://myaccount.google.com/lesssecureapps
Em C #, você pode usar o seguinte código:
-------------------
Informações compartilhadas por Michael Freidgeim na área de comentários abaixo:
Resposta semelhante com capturas de tela https://stackoverflow.com/a/32457468/52277
fonte
Certifique-se de definir
SmtpClient.Credentials
após ligarSmtpClient.UseDefaultCredentials = false
.A ordem é importante, pois a configuração
SmtpClient.UseDefaultCredentials = false
será redefinidaSmtpClient.Credentials
como nula.fonte
Pesquisei e tentei coisas diferentes durante horas. Para resumir, tive que levar em consideração os seguintes pontos:
smtp.gmail.com
vez desmtp.google.com
client.UseDefaultCredentials = false;
antes de definir credenciaisclient.EnableSsl = true;
Se essas etapas não ajudarem, verifique esta resposta .
Talvez você possa encontrar algo útil neste FAQ do System.Net.Mail também.
fonte
Tente fazer o login em sua conta do gmail. ele fica bloqueado se você enviar e-mails usando o SMTP do gmail. Não sei o limite de e-mails que você pode enviar antes de ser bloqueado, mas se você entrar uma vez, ele funciona novamente a partir do código. certifique-se de que a configuração do webconfig está correta.
fonte
Experimente desta forma, acabei de fazer algumas alterações leves:
Também mostre seu arquivo app.config, se você tiver configurações de e-mail lá.
fonte
tente permitir o acesso de aplicativo menos seguro.
Aqui, você pode habilitar o aplicativo menos seguro após fazer o login no Gmail.
https://myaccount.google.com/lesssecureapps
Obrigado.
fonte
Encontrei o mesmo problema, mesmo definindo "UseDefaultCredentials" como false. Mais tarde, descobri que a causa raiz é que eu ativei a "verificação em duas etapas" em minha conta. Depois de desligá-lo, o problema desapareceu.
fonte
Ative o aplicativo menos seguro a partir deste link e bum ...
fonte
Certifique-se de que o acesso a aplicativos menos seguros seja permitido.
fonte
Abaixo está meu código. Eu também tive o mesmo erro, mas o problema é que eu dei minha senha errada. O código abaixo funcionará perfeitamente ... tente
Você pode consultá-lo em Enviando e-mail
fonte
Se for uma nova conta do Google, você deve enviar um e-mail (o primeiro) através da interface de usuário normal. Depois disso, você pode usar seu aplicativo / robô para enviar mensagens.
fonte
Você deve considerar especificar os dados de configuração SMTP no arquivo de configuração e não substituí-los em um código - consulte os dados de configuração SMTP em http://www.systemnetmail.com/faq/4.1.aspx
fonte
Eu encontrei o mesmo problema várias vezes. Depois de habilitar a opção de aplicativo menos seguro, o problema foi resolvido. Habilite o aplicativo menos seguro aqui: https://myaccount.google.com/lesssecureapps
espero que isso ajude.
fonte
Se você estiver em um ambiente de teste e não quiser definir as configurações de segurança, terá que permitir aplicativos menos seguros via. este link no Gmail.
https://myaccount.google.com/lesssecureapps
fonte
alguns servidores smtp (os seguros) exigem que você forneça o nome de usuário e o e-mail. Se for do Gmail, é provável que seja o problema de 'Login menos seguro' que você precisa resolver; caso contrário, você pode tentar:
observe que o e-mail de e o nome de usuário são diferentes, ao contrário de algumas implementações que se referem a eles como iguais.
chamar este método pode ser feito assim:
fonte
Depois de ativar a opção menos segura e tentar outras soluções, se você ainda estiver enfrentando o mesmo problema, tente usar esta sobrecarga:
ao invés de:
fonte
Criei uma assinatura de desenvolvedor do Microsoft 365 (E5) hoje de manhã e usei-a para enviar um e-mail de teste usando as seguintes configurações
Não funcionou no início, pois continuei recebendo essa mensagem de erro com a exceção lançada por este código. Em seguida, passei cerca de 4 horas brincando com as configurações do centro de administração do Microsoft 365 e lendo artigos para descobrir o problema. Por fim, mudei minha senha do centro de administração do Microsoft 365 e funcionou perfeitamente. Portanto, vale a pena tentar alterar a senha ao receber esta mensagem, antes de pensar em qualquer solução antecipada.
Observe que a senha não era inválida com certeza, pois entrei na minha conta do Microsoft 365 sem problemas. no entanto, a alteração da senha resolveu o problema.
fonte
Eu também estava enfrentando o problema de 'O servidor SMTP requer uma conexão segura ou o cliente não foi autenticado. A resposta do servidor foi: 5.5.0 Authentication Required 'então passei por muitos materiais da Internet, mas não me ajudou totalmente. Como eu resolvi
passo 1: smtp.gmail.com é o servidor do gmail, então vá para as configurações do gmail da sua conta-> clique em ver todas as configurações-> Encaminhamento e IMAP / POP-> verifique se o pop-up e o imap estão habilitados, caso não o habilite-> Salvar alterações. passo 2 clique em sua imagem de perfil do Gmail-> clique em Gerenciar sua conta do google-> vá para a guia de segurança-> verifique o acesso a aplicativos menos seguros (esta opção estará disponível se você não optou pela verificação em duas etapas) -> por padrão google irá defini-lo como desabilitado, habilitá-lo para usar sua senha real do Gmail trabalhando para enviar e-mail. observação: -Ativar o acesso ao gmail para aplicativos menos seguros pode ser perigoso para você, então não recomendo
etapa 3: -se sua conta tem a verificação em duas etapas ativada ou deseja usar uma senha diferente da senha real do Gmail usando a senha específica do aplicativo, tente o seguinte: - clique na imagem do perfil do Gmail-> clique em Gerenciar sua conta do Google-> vá para segurança guia-> pesquise APP PASSWORD-> selecione qualquer nome de aplicativo fornecido-> selecione qualquer nome de dispositivo-> clique em gerar-> copie a senha de 16 dígitos e cole-a em seu aplicativo, onde você deve inserir uma senha do Gmail no lugar de sua senha real do gmail.
fonte