Gmail на heroku с Rails 3

#ruby-on-rails #heroku #gmail

#ruby-on-rails #heroku #gmail

Вопрос:

Я пытаюсь отправлять электронные письма с Heroku и запускать. На данный момент я могу отправлять электронные письма с Heroku через «учебник» по адресу http://blog.heroku.com/archives/2009/11/9/tech_sending_email_with_gmail /, так что это нормально.

Моя текущая проблема заключается в том, что, когда я получил его для работы в Heroku, я не могу заставить его работать в разработке. У меня это было запущено и запущено с настройками в environment.rb или development.rb, но после того, как материал из учебника заработал, и я удалил настройки в env / dev.rb, он не работает.

В браузере я получаю сообщение об ошибке: 530-5.5.1 Authentication Required. Learn more at (оно отключается после получения дополнительной информации по адресу)

В консоли сервера я получаю сообщение об ошибке: Net::SMTPAuthenticationError (530-5.5.1 Authentication Required. Learn more at
):

Я установил heroku config:add GMAIL_SMTP_USER=username@gmail.com и heroku config:add GMAIL_SMTP_PASSWORD=yourpassword (с моей информацией ;)), но это не помогает.

Есть идеи, что я делаю не так?

Могу ли я сделать это по-старому в разработке и каким-то образом пропустить сценарий heroku?

Приветствую Карла

Комментарии:

1. Я также сталкиваюсь с той же проблемой с почтовой программой Rails action, использующей Gmail в моем экземпляре Linode. за 2 дня до этого все работало нормально, но сегодня внезапно появилась эта ошибка.

2. вы нашли решение этой проблемы? У меня такая же проблема…

Ответ №1:

Просто сделайте так, как сказал вышеупомянутый пользователь о настройках SMTP.
В дополнение к этому Gmail блокирует неопознанные логины из приложения в вашу учетную запись без вашей проверки.
Итак, перейдите в свой клиент Gmail и войдите в систему там.

Если это не сработает, перейдите к разблокировке captcha

Комментарии:

1. Я получал эту ошибку: Net::SMTPAuthenticationError (534-5.7.14 < accounts.google.com/ContinueSignIn?plt =… ). Посещение вашей ссылки исправило это. Спасибо!

Ответ №2:

Я лично столкнулся с этой ошибкой при отправке с помощью Gmail, и мне нужно было решить проблему разблокировки CAPTCHA, чтобы разрешить отправку. Gmail иногда может быть требовательным к безопасности, а документация не очень понятна.

Полное сообщение должно гласить:

 530-5.5.1 Authentication Required. Learn more at https://support.google.com/mail/bin/answer.py?hl=enamp;answer=14257
 

итак, проверьте эту ссылку и следуйте инструкциям там.

Возможно, вам потребуется войти в веб-приложение Gmail или (что я должен был сделать), решить проблему разблокировки CAPTCHA. Или, возможно, это что-то в вашем приложении или среде, но следовать указаниям Google стоит попробовать.

Ответ №3:

Пожалуйста, добавьте следующий код в config/environments/development.rb

 config.action_mailer.raise_delivery_errors = false
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
 

а также убедитесь, что вы добавили следующее в config/initializers/smtp_gmail.rb

 ActionMailer::Base.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :user_name            => "abc@xyz.com",
  :password             => "password",
  :authentication       => "plain",
  :enable_starttls_auto => true
}
 

Ответ №4:

Вы экспортировали эти переменные среды на свой локальный компьютер? Вы говорите, что добавляете GMAIL_SMTP … в конфигурацию heroko, но так ли это:

$ экспорт GMAIL_SMTP_USER=username@gmail.com $ экспортировать GMAIL_SMTP_PASSWORD=ваш пароль

Я столкнулся с вашим вопросом, потому что у меня также есть электронная почта, работающая в dev, и подумал, нужен ли еще пост 2009 года о том, как заставить smtp и gmail работать на heroku. По-видимому, так.

Ответ №5:

У меня есть почта, отправляемая через Gmail в приложении heroku. Вот моя конфигурация, если это поможет. Я не использую никаких сторонних плагинов, только Rails 3.

В config/initializers/setup_mail.rb

 ActionMailer::Base.smtp_settings = {
  :address  => "smtp.gmail.com",
  :port  => 587,
  :user_name  => "foo@bar.com",
  :password  => "foobar",
  :authentication  => :plain,
  :enable_starttls_auto => true
}
 

В config/environments/production.rb

После end утверждения для config блока я добавил

ActionMailer::Base.smtp_settings[:enable_starttls_auto] = false