SMTP-AUTH solicitado, mas falta nome de usuário
-
21-12-2019 - |
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
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