ti-enxame.com

Net :: SMTPAuthenticationError ao enviar email de Rails app (no ambiente de preparação)

Estou enviando e-mail do meu aplicativo Rails. Ele funciona bem no ambiente de desenvolvimento, mas falha no preparo. Estou tendo o erro a seguir:

Net::SMTPAuthenticationError (534-5.7.14 <https://accounts.google.com/ContinueSignIn?plt=AKgnsbtdF0yjrQccTO2D_6)

Note que eu não tenho um nome de domínio para a minha encenação.

Aqui estão minhas configurações no staging.rb

config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { :Host => "my.ip.addr.here:80" }
config.action_mailer.smtp_settings = {
      :address => "smtp.gmail.com",
      :port => 587,
      :domain => 'my.ip.addr.here:80'
      :user_name => "[email protected]",
      :password => "my_email_password",
      :authentication => 'login'
}

Por favor ajude.

Editar

Depois de adicionar a opção :tls => true eu recebo

OpenSSL::SSL::SSLError (Unrecognized SSL message, plaintext connection?)

E então eu mudei a porta para 25 e agora eu recebo isso (com atraso de 30 segundos):

Timeout::Error (execution expired)
90
eagor

Eu tive o mesmo problema: e-mails foram enviados do desenvolvimento, mas não da produção (onde eu estava recebendo Net::SMTPAuthenticationError). Isso me levou a concluir que o problema não estava na configuração do meu aplicativo, mas no Google.

Motivo : o Google estava bloqueando o acesso de local desconhecido (aplicativo em produção)

Solução : vá para http://www.google.com/accounts/DisplayUnlockCaptcha e clique em continuar (isso concederá acesso por 10 minutos para registrar novos aplicativos). Depois disso, meu aplicativo em produção começou a enviar e-mails;)

236
Gee-Bee

Esta solução está funcionando para mim:

config.action_mailer.delivery_method = :smtp
  config.action_mailer.default_url_options = { Host:'localhost', port: '3000' }
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.default :charset => "utf-8"
  config.action_mailer.smtp_settings = {
      :address => "smtp.gmail.com",
      :port => 587,
      :domain => 'localhost:3000',
      :user_name => "[email protected]",
      :password => "password",
      :authentication => :plain,
      :enable_starttls_auto => true
  }

É verdade que o Google bloqueará sua tentativa de login, mas você poderá alterar suas configurações em https://www.google.com/settings/security/lesssecureapps para que sua conta não seja mais protegida pela moderna padrões de segurança.

24
A H K

Resolvido! Eu simplesmente senha alterada para minha conta do gmail e de alguma forma os erros desapareceram.

Depois de dezenas de mudanças, as configurações finais que acabei com são:

config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { :Host => "my.ip.addr.here" }
config.action_mailer.smtp_settings = {
      :address => "smtp.gmail.com",
      :port => 587,
      :domain => 'my.ip.addr.here:80',
      :user_name => "[email protected]",
      :password => "my_email_password",
      :authentication => :plain,
      :enable_starttls_auto => true
}
23
eagor
14
aashish

A solução acima forneceu as configurações corretas (que eu já tinha), mas não resolveu o problema. Após as tentativas continuadas, continuei recebendo o mesmo erro. Acontece que eu tive que "limpar o CAPTCHA" da web. Veja o documentação do gmail para detalhes.

Você também pode ir direto para a página "limpar o CAPTCHA" aqui .

13
Sorry-Im-a-N00b

Muito mais tarde, mas apenas para o caso de ajudar alguém .. Apenas chamaram a Central de Ajuda do Google Apps e eles instruíram para alterar a configuração lesssecureapps (como todos os outros), mas também para alterar a porta para 465.

No meu caso, isso funcionou!

2
Alejandro Sherwell

A resposta aceita parece muito antiga, não sei se naquela época a solução seguinte (melhor) existia:

Agora, enviar e-mails funciona perfeitamente!

0
ubugnu

Eu tive o mesmo problema.


Solução:

0
Benyamin Jafari

Eu também enfrentei o problema e, após algumas pesquisas no Gmail, encontrei a solução:

  1. No gmail, vá para as configurações.

  2. Selecione a guia "Encaminhamento e POP/IMAP".

  3. Na seção de acesso IMAP, selecione "Ativar IMAP".

0
Shrinivas

Olá isso também funcionou para mim e por isso, se alguém ainda está tendo um problema, tente fazer isso.

Certifique-se de ter o figaro no seu gemfile. Para salvar informações confidenciais, como nome de usuário e senha, como variáveis ​​de ambiente

gem 'figaro'

E em seu config/environments/development.rb, cole os códigos abaixo usando smtp como método de entrega

 config.action_mailer.delivery_method = :smtp

configurações de SMTP para o gmail

  config.action_mailer.smtp_settings =
  {
    :address=> "smtp.gmail.com",
    :port => 587,
    :user_name => ENV['gmail_username'],
    :password=> ENV['gmail_password'],
    :authentication=> "plain",
    :enable_starttls_auto=>true
  }


config.action_mailer.default_url_options = { Host: "locahost:3000" }

Em seu diretório de configuração, crie um arquivo chamado application.yml e adicione os códigos abaixo.

gmail_username: '[email protected]' 
gmail_password: "your_example_email_password_here"

Você deve usar seu email e senha para autenticação no arquivo.

0
cooxy