Pergunta

atualmente estou fazendo o de Daniel Kehoe Aprenda Ruby on Rails tutorial.Um dos exercícios é enviar um formulário de contato da página Contato usando a conta do Gmail do Google.

Porém, quando enviei o formulário de contato, em vez de receber um e-mail na minha caixa de correio, estou recebendo este erro:

"SMTP-AUTH solicitado, mas falta nome de usuário"

No meu arquivo config/application.yml, defino meu nome de usuário e senha do Gmail.

Alguém tem uma ideia do que poderia ser o problema?

Obrigado pela ajuda,

Antônio

Foi útil?

Solução

Para Rails 4.0 (Rails 4.1 usa um arquivo secrets.yml para definir credenciais):

Verifique o arquivo config/ambientes/desenvolvimento.rb, você deve ter isto:

  config.action_mailer.smtp_settings = {
    address: "smtp.gmail.com",
    port: 587,
    domain: ENV["DOMAIN_NAME"],
    authentication: "plain",
    enable_starttls_auto: true,
    user_name: ENV["GMAIL_USERNAME"],
    password: ENV["GMAIL_PASSWORD"]
  }
  # ActionMailer Config
  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.raise_delivery_errors = true
  # Send email in development mode.
  config.action_mailer.perform_deliveries = true

Tente substituir ENV["GMAIL_USERNAME"] pelo seu nome de usuário do Gmail.

Você pode definir ENV["GMAIL_USERNAME"] em seu shell Unix.Ou configure-o no arquivo config/aplicativo.yml.Se o nome de usuário contiver caracteres não alfabéticos, pode ser necessário colocá-lo entre aspas no arquivo config/aplicativo.yml.

Outras dicas

Basta verificar se o nome dos parâmetros está correto.Para mim mudando username em user_name resolveu o problema.
Se você gosta de ver erros, altere o valor de config.action_mailer.raise_delivery_errors em true.Eu tenho o Rails 4 e não foi necessária nenhuma alteração nas configurações para funcionar corretamente.
Obrigado @Toontje e @Daniel Kehoe

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top