Подтвердить что ты не робот

Rails 4, как правильно настроить параметры smtp (gmail)

Я пытаюсь создать контактную форму в Rails 4. Я сделал кое-какие работы здесь и смог получить большую часть материала для работы. (после работы @sethfri здесь Форма контакта Mailer в Rails 4)

Сейчас я могу заполнить свою форму и нажать отправить. На моем сервере rails говорится, что почта была отправлена ​​на мой адрес электронной почты, но я ничего не получаю в моем почтовом ящике gmail, поэтому я думаю, что мои настройки smtp неверны. Мои настройки smtp:

... конфигурации/среда/development.rb

config.action_mailer.raise_delivery_errors = true
  config.action_mailer.perform_deliveries = true

  config.action_mailer.default_url_options = { :host => 'localhost:3000' }

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address => "smtp.gmail.com",
    :port => "587",
    :domain => "mydomain.net",
    :user_name => "[email protected]",
    :password => "myGmailPassword",
    :authentication => "plain",
    :enable_starttls_auto => true
  } 

Также я добавил .../конфиг/Инициализаторы/smtp_settings.rb

ActionMailer::Base.smtp_settings = {
    :address => "smtp.gmail.com",
    :port => "587",
    :domain => "mydomain.net",
    :user_name => "[email protected]",
    :password => "gmailPassword",
    :authentication => "plain",
    :enable_starttls_auto => true
}

Что мне не хватает/не так? Я играл с несколькими вещами (изменил default_url на порт 1025, изменил: port = > "587" на: port = > 587) без успеха.

Спасибо за помощь!

4b9b3361

Ответ 1

Вы должны правильно установить домен. В настоящее время в коде размещен свой "mydomain.net". Измените его на gmail.com, если вы хотите отправить его через gmail.

config.action_mailer.smtp_settings = {
  address:              'smtp.gmail.com',
  port:                 587,
  domain:               'gmail.com',
  user_name:            '[email protected]',
  password:             'yourpassword',
  authentication:       :plain,
  enable_starttls_auto: true
}

Ответ 2

Если вы столкнулись с ошибками, например Net:: SMTPAuthenticationError, при использовании gmail для отправки сообщений электронной почты (общих для учетных записей Google Apps), зайдите в настройки gmail и включите менее безопасные приложений, чтобы заставить приложение работать.

Ответ 3

Через несколько часов, чтобы найти, как заставить это работать для меня, я нахожу способ заставить его работать. Для себя мне нужно было сделать двухэтапную аутентификацию и использовать пароль приложения Gmail

Когда вы включаете двухэтапную аутентификацию (также известную как двухфакторная аутентификация), вы добавляете дополнительный уровень безопасности в свою учетную запись. Вы входите с тем, что знаете (ваш пароль) и тем, что у вас есть (код, отправленный на ваш телефон).

Настройка двухэтапной аутентификации

  • Перейдите на страницу 2-Step Verification. Возможно, вам придется войти в свою учетную запись Google.
  • В поле "2-Step Verification" справа выберите "Начать настройку".
  • Следуйте пошаговым настройкам.

Пароль приложения - это 16-значный код доступа, который дает разрешение на приложение или устройство для доступа к вашей учетной записи Google. Если вы используете 2-Step-Verification и видите ошибку "неверный пароль" при попытке получить доступ к своей учетной записи Google, пароль для приложения может решить проблему. В большинстве случаев вам придется вводить пароль приложения только один раз на приложение или устройство, поэтому не беспокойтесь о его запоминании.

Как сгенерировать пароль приложения

  • Перейдите на страницу Папки приложений. Вам может быть предложено войти в свой аккаунт Google.
  • Внизу нажмите "Выбрать приложение" и выберите приложение, которое вы используете.
  • Нажмите "Выбрать устройство" и выберите устройство, которое вы используете.
  • Выберите "Создать".
  • Следуйте инструкциям, чтобы ввести пароль приложения (16-символьный код на желтой полосе) на вашем устройстве.
  • Выберите Готово

Ответ 4

Google рекомендует использовать OAuth 2.0 для процесса входа в систему. Эта конфигурация "не так безопасна" для Google, но они терпят ее. Вы должны разрешить "менее безопасные подключения" в настройках учетной записи Google или использовать OAuth-way. https://developers.google.com/identity/protocols/OAuth2

Их библиотека для ruby ​​все еще альфа. Кажется, что некоторые драгоценные камни расширяют ActionMailer для OAuth, но я никогда не использовал их.