Por algum motivo, nem a resposta aceita nem outras funcionam para " Enviar email no .NET pelo Gmail ". Por que eles não funcionariam?
ATUALIZAÇÃO: Tentei todas as respostas (aceitas ou não) na outra pergunta, mas nenhuma delas funciona.
Gostaria apenas de saber se funciona para mais alguém. Caso contrário, o Google pode ter alterado alguma coisa (o que já aconteceu antes).
Quando tento o trecho de código usado SmtpDeliveryMethod.Network
, recebo rapidamente uma SmtpException no Send (message). A mensagem é
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. Saiba mais em "<- sério, termina aí.
ATUALIZAR:
Essa é uma pergunta que eu fiz há muito tempo, e a resposta aceita é o código que eu usei muitas e muitas vezes em projetos diferentes.
Eu peguei algumas das idéias nesta postagem e em outros projetos EmailSender para criar um projeto EmailSender na Codeplex . Ele foi projetado para teste e suporta meus serviços SMTP favoritos, como GoDaddy e Gmail.
Respostas:
CVertex, certifique-se de revisar seu código e, se isso não revelar nada, publique-o. Eu estava apenas ativando isso em um site de teste do ASP.NET em que estava trabalhando e funciona.
Na verdade, em algum momento, tive um problema no meu código. Eu não o localizei até que eu tivesse uma versão mais simples em um programa de console e vi que estava funcionando (nenhuma alteração no lado do Gmail, como você estava preocupado). O código abaixo funciona exatamente como os exemplos a que você se referiu:
Também trabalhei usando uma combinação de web.config, http://msdn.microsoft.com/en-us/library/w355a94k.aspx e código (porque não há correspondência
EnableSsl
no arquivo de configuração :().fonte
O SEGUINTE SERÁ CERTAMENTE RESPOSTA À SUA PERGUNTA SE TODOS OS OUTROS FALHAREM :
Eu recebi exatamente o mesmo erro, ao que parece, o novo algoritmo de medição de força de senha do Google mudou, considerando minha senha atual como muito fraca e não me dizendo nada sobre ela (nem mesmo uma mensagem ou aviso) ... Como descobri isso ? Bem, eu escolhi mudar minha senha para ver se isso ajudaria (tentei de tudo sem sucesso) e quando mudei minha senha, funcionou!
Então, para um experimento, tentei alterar minha senha de volta para minha senha anterior para ver o que aconteceria, e o Gmail na verdade não me permitiu fazer isso, citando o motivo "desculpe, não podemos permitir que você salve essa alteração como você escolheu a senha é muito fraca "e não me permitiu voltar à minha senha antiga. Eu deduzi disso que estava errado porque: a) você precisa alterar sua senha uma vez a cada x quantidade de meses ou b). como eu disse antes, seus algoritmos de força de senha mudaram e, portanto, a senha fraca que eu tinha não foi aceita, mesmo que eles não tenham dito nada sobre isso ao tentar fazer login em QUALQUER LUGAR! Esse (número 2) é o cenário mais provável, pois minha senha fraca tinha cerca de 4 meses e me permitiu usá-la no Gmail.
É muito ruim que eles não tenham dito nada sobre isso, mas faz sentido. Como a maioria dos emails invadidos é acessada usando software fora do gmail, acho que você precisa de uma senha mais forte se quiser usar o Gmail fora do ambiente do Gmail.
Eu espero que isso ajude!
fonte
Além das outras etapas de solução de problemas acima, também gostaria de acrescentar que, se você ativou a autenticação de dois fatores (também conhecida como verificação em duas etapas ) na sua conta do GMail, deve gerar uma senha específica do aplicativo e usar essa nova funcionalidade. senha gerada para autenticar via SMTP .
Para criar um, visite: https://www.google.com/settings/ e escolha Autorizando aplicativos e sites para gerar a senha.
fonte
Link para a configuração do Gmail
fonte
Também tive alguns problemas ao enviar e-mails da minha conta do Gmail, devido a várias das situações mencionadas acima. Aqui está um resumo de como eu o fiz funcionar e mantendo-o flexível ao mesmo tempo:
E agora, sempre que você quiser enviar e-mails, basta ligar para
SSLMail.SendMail
:por exemplo, em uma página com um controle PasswordRecovery:
Ou em qualquer lugar do seu código, você pode ligar:
Espero que isso ajude quem estiver neste post! (Eu usei o VB.NET, mas acho que é trivial convertê-lo para qualquer linguagem .NET.)
fonte
Se você receber 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. Saiba mais em" como eu recebo antes disso, verifique se a linha está
SMTPClientObj.UseDefaultCredentials = False
incluída e esta linha deve antes doSMTPClientObj.Credentials
.Tentei mudar essas duas linhas da maneira oposta e o erro 5.5.1 Authentication Required retornou.
fonte
Ah ... é incrível ... Primeiro, não consegui enviar um e-mail por nenhum motivo. Mas depois que mudei a sequência dessas duas linhas, como abaixo, ela funciona perfeitamente.
Espero que esta ajuda !!! :)
fonte
O problema não é da capacidade técnica de enviar pelo gmail. Isso funciona para a maioria das situações. Se você não consegue enviar uma máquina, geralmente isso ocorre porque a máquina não foi autenticada com um ser humano nos controles pelo menos uma vez.
O problema que a maioria dos usuários enfrenta é que o Google decide alterar os limites de saída o tempo todo. Você sempre deve adicionar código defensivo à sua solução. Se você começar a ver erros, diminua a velocidade de envio e pare de enviar por um tempo. Se você continuar tentando enviar o Google, às vezes, adicionará um tempo extra ao seu período de atraso antes que você possa enviar novamente.
O que fiz no meu sistema atual é enviar com um atraso de 1,5 segundo entre cada mensagem. Se houver algum erro, pare por 5 minutos e inicie novamente. Isso geralmente funciona e permitirá que você envie até os limites da conta (a última vez que verifiquei foram 2.000 para logins de clientes principais por dia).
fonte
Etapas simples para corrigir isso:
1) Faça login no seu Gmail
2) Navegue até esta página https://www.google.com/settings/security/lesssecureapps e defina como "Ativar"
fonte
Eu tinha o mesmo problema, mas a proteção contra vírus estava bloqueando os emails de "spam" enviados. Desativar isso me permitiu usar a porta 587 para enviar email SMTP via GMail
fonte
Se nada mais funcionou aqui para você, talvez seja necessário permitir o acesso à sua conta do Gmail a partir de aplicativos de terceiros. Este foi o meu problema. Para permitir o acesso, faça o seguinte:
Isso funcionou para mim, espero que funcione para outra pessoa!
fonte
Não tenho certeza de qual versão do .NET é necessária para isso, porque eglasius mencionou que não há uma
enableSsl
configuração correspondente (estou usando o .NET 4.0, mas suspeito que funcione no .NET 2.0 ou posterior), mas essa configuração justamente funcionou para eu (e não requer que você use nenhuma configuração programática):Pode ser necessário ativar o POP ou IMAP na sua conta do Gmail primeiro: https://mail.google.com/mail/?shva=1#settings/fwdandpop
Eu recomendo tentar com um cliente de correio normal primeiro ...
fonte
@Andres Pompiglio: Sim, está certo, você deve alterar sua senha pelo menos uma vez. Este código funciona perfeitamente:
E você pode fazer uma chamada para a função usando:
fonte
Eu estava usando conexão VPN corporativa. Foi por esse motivo que não pude enviar e-mails do meu aplicativo. Funciona se eu me desconectar da VPN.
fonte
Também descobri que a conta que eu costumava fazer login foi desativada pelo Google por algum motivo. Depois de redefinir minha senha (da mesma forma que costumava ser), fui capaz de enviar e-mails muito bem. Eu estava recebendo a mensagem 5.5.1 também.
fonte
Eu também tentei muitas soluções, mas fazer algumas alterações funcionará
com smtpclient acima dos parâmetros são funcionais no gmail
fonte
Eu estava recebendo o mesmo erro e nenhuma das soluções acima ajudou.
Meu problema era que eu estava executando o código em um servidor remoto, que nunca havia sido usado para fazer login na conta do Gmail.
Abri um navegador no servidor remoto e entrei no Gmail a partir daí. Ele fez uma pergunta de segurança para verificar se era eu, pois esse era um novo local. Depois de fazer a verificação de segurança, consegui me autenticar através do código.
fonte
Ative aplicativos menos seguros para sua conta: https://www.google.com/settings/security/lesssecureapps
fonte
Eu encontrei o mesmo erro ( "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. Saiba mais em" ) e descobri que estava usando a senha errada. Corrigi as credenciais de login e elas foram enviadas corretamente.
Eu sei que é tarde, mas talvez isso ajude outra pessoa.
fonte
Outra coisa que descobri é que você deve alterar sua senha pelo menos uma vez. E tente usar uma senha de nível seguro (não use o mesmo usuário da senha, 123456 etc.)
fonte
Mais uma solução possível para você. Eu estava tendo problemas semelhantes ao conectar-me ao gmail via IMAP. Depois de experimentar todas as soluções que encontrei, você lerá aqui e em outros lugares no SO (por exemplo, habilite o IMAP, habilite um acesso menos seguro ao seu e-mail, usando https://accounts.google.com/b/0/displayunlockcaptcha e etc.), na verdade, configurei uma nova conta do Gmail mais uma vez.
No meu teste original, a primeira conta do Gmail que eu criei, eu havia me conectado à minha conta principal do Gmail. Isso resultou em um comportamento irregular, onde a conta errada estava sendo referenciada pelo Google. Por exemplo, a execução de https://accounts.google.com/b/0/displayunlockcaptcha abriu minha conta principal em vez da que eu havia criado para esse fim.
Então, quando criei uma nova conta e não a conectei à minha conta principal, depois de seguir todas as etapas apropriadas, como acima, descobri que funcionava bem!
Ainda não confirmei isso (ou seja, reproduzi), mas aparentemente o fez por mim ... espero que ajude.
fonte
Conjunto
antes
fonte
Um ou mais motivos existem para esses erros.
Faça login com seu Gmail (ou qualquer outro se) em seu sistema local.
Verifique também o aplicativo menos seguro e defina-o como "Ligar", aqui está o link para o GMAIL. https://www.google.com/settings/security/lesssecureapps
verifique EnableSsl no seu código de e-mail e defina-o como verdadeiro.
Verifique também qual porta você está usando atualmente. 25 é Global, mas você também pode consultá-lo como 587. verifique aqui. Toda a comunicação SMTP ocorre acima de 25?
SE ESTIVER REMOTO : Verifique a resposta de Vlad Tamas acima.
fonte
Você também pode se conectar via porta 465, mas devido a algumas limitações do espaço para nome System.Net.Mail, talvez seja necessário alterar seu código. Isso ocorre porque o espaço para nome não oferece a capacidade de fazer conexões SSL implícitas. Isso é discutido em http://blogs.msdn.com/b/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx e I fornecemos um exemplo de como usar o CDO (Collaborative Data Object) em outra discussão ( GMail SMTP via erros de C # .Net em todas as portas ).
fonte
Eu tive esse problema resolvido. Aparentemente, essa mensagem é usada em vários tipos de erro. Meu problema era que havia atingido o máximo de 500 e-mails enviados.
faça login na conta e tente enviar um email manualmente. Se o limite for atingido, você será informado
fonte
Se você tiver a verificação em duas etapas ativada na sua conta do Gmail, será necessário gerar uma senha do aplicativo. https://support.google.com/accounts/answer/185833?p=app_passwords_sa&hl=pt_BR&visit_id=636903322072234863-1319515789&rd=1 Selecione Como gerar uma opção de senha de aplicativo e siga as etapas fornecidas. Copie e cole a senha do aplicativo gerada em algum lugar, pois não será possível recuperá-la depois de clicar em Concluído.
fonte
fonte
Altere sua senha do Gmail e tente novamente. Depois disso, ela funcionará.
Não sei por que, mas toda vez que você altera sua hospedagem, é necessário alterar sua senha.
fonte