SMTP-AUTH запрошен, но отсутствует имя пользователя

В настоящее время я занимаюсь обучением Даниэля Кехо по изучению Ruby on Rails Одним из упражнений является отправка контактной формы со страницы контактов с использованием учетной записи Google Gmail.

Однако, когда я отправляю контактную форму, вместо того, чтобы получать электронное письмо в своем почтовом ящике, я получаю эту ошибку:

"SMTP-AUTH запрошен, но отсутствует имя пользователя"

В моем файле config/application.yml я установил имя пользователя и пароль Gmail.

У кого-нибудь есть идеи в чем может быть проблема?

Спасибо за вашу помощь,

Энтони

2 ответа

Решение

Для Rails 4.0 (Rails 4.1 использует файл secrets.yml для установки учетных данных):

Проверьте файл config/environment / development.rb, у вас должно быть это:

  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

Попробуйте заменить ENV["GMAIL_USERNAME"] на свое имя пользователя Gmail.

Вы можете установить ENV["GMAIL_USERNAME"] в вашей оболочке Unix. Или установите его в файле config / application.yml. Если имя пользователя содержит не-буквенные символы, вам может потребоваться заключить его в кавычки в файле config / application.yml.

Просто проверьте правильность имени параметра. Для меня меняется username в user_name решил проблему.
Если вы хотите видеть ошибки, измените значение config.action_mailer.raise_delivery_errors в true, У меня есть Rails 4, и он не требует каких-либо изменений настроек для правильной работы.
Спасибо @Toontje и @Daniel Kehoe

Другие вопросы по тегам