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) без успеха.
Спасибо за помощь!
Ответы
Ответ 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, но я никогда не использовал их.