Подтверждение по электронной почте от devise на rails3 с использованием gmail не приходит - PullRequest
7 голосов
/ 25 сентября 2010

Я настроил следующее.

----------------------
config/environments/development.rb
----------------------
 29   ActionMailer::Base.delivery_method = :smtp
 30   ActionMailer::Base.perform_deliveries = true
 31   ActionMailer::Base.raise_delivery_errors = true
 32  
 33   ActionMailer::Base.smtp_settings = {
 34     :enable_starttls_auto => true,  #this is the important stuff!
 35     :address        => 'smtp.gmail.com',
 36     :port           => 587,
 37     :domain         => 'foo.com',
 38     :authentication => :plain,
 39     :user_name      => '---@---.---',
 40     :password       => '---'
 41   }

Однако, когда devise отправляет электронное письмо с подтверждением, веббрик печатает письмо в журнале без ошибок, но письмо не попадает в мой почтовый ящик или спамВходящиеустановить выше в конфигурационном файле.Однако что это за команда STARTTLS?

РЕШЕНИЕ:

----------------------
config/environments/development.rb
----------------------
 26   require 'tlsmail' #key but not always described
 27   Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
 28  
 29   ActionMailer::Base.delivery_method = :smtp
 30   ActionMailer::Base.perform_deliveries = true
 31   ActionMailer::Base.raise_delivery_errors = true
 32  
 33   ActionMailer::Base.smtp_settings = {
 34     :enable_starttls_auto => true,  #this is the important stuff!
 35     :address        => 'smtp.gmail.com',
 36     :port           => 587,
 37     :domain         => 'xtargets.com',
 38     :authentication => :plain,
 39     :user_name      => '-------',
 40     :password       => '-------'
 41   }
 42  

Брэд

Ответы [ 2 ]

5 голосов
/ 25 сентября 2010

У меня была та же проблема;в моем случае это было связано с ошибкой (Net :: SMTP не говорит по TLS, что требуется для gmail), и я решил ее, как описано здесь .

0 голосов
/ 26 марта 2011

Вместо того, чтобы отключить глобальную проверку SSL-сертификата, вы можете передать дополнительный параметр smtp_settings:

config.action_mailer.smtp_settings = {
  :address              => 'smtp.example.com',
  :port                 => '25',
  :domain               => 'example.com',
  :user_name            => 'someone@example.com',
  :password             => 'secret',
  :authentication       => 'plain',
  :enable_starttls_auto => true,
  :openssl_verify_mode  => OpenSSL::SSL::VERIFY_NONE,
}

Вам также может понадобиться require 'openssl', чтобы получить эту константу.

Это решение также работает с Pony, если вы включите :openssl_verify_mode в хеш :via_options.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...