Невозможно отправить электронную почту из веселья 3, рельсы 4

Мне трудно настроить smtp с помощью приложения rails. Я делал это много раз в прошлом без веселья, которое работало нормально. Но по какой-то причине я не могу заставить мои настройки smtp работать с весельем для отправки электронных писем.

Вот моя конфигурация:

  config.assets.raise_runtime_errors = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    address:              'smtp.gmail.com',
    port:                 465, # Doesn't work with 587 either 
    domain:               'gmail.com',
    user_name:            '[email protected]',
    password:             'emailPassword', 
    authentication:       :plain, # Tried :login too
    enable_starttls_auto: true
   }

Я получаю пару ошибок, перечисленных ниже Net::ReadTimeout: Net::ReadTimeout и Net::OpenTimeout: execution expired

Ниже приведена трассировка стека

Net::OpenTimeout: execution expired
from /home/pamio/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/smtp.rb:541:in `initialize'
from /home/pamio/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/smtp.rb:541:in `open'
from /home/pamio/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/smtp.rb:541:in `tcp_socket'
from /home/pamio/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/smtp.rb:551:in `block in do_start'
from /home/pamio/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/timeout.rb:91:in `block in timeout'
from /home/pamio/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/timeout.rb:101:in `call'
from /home/pamio/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/timeout.rb:101:in `timeout'
from /home/pamio/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/smtp.rb:550:in `do_start'
from /home/pamio/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/smtp.rb:520:in `start'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/mail-2.6.3/lib/mail/network/delivery_methods/smtp.rb:112:in `deliver!'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/mail-2.6.3/lib/mail/message.rb:2141:in `do_delivery'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/mail-2.6.3/lib/mail/message.rb:236:in `block in deliver'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/actionmailer-4.2.1/lib/action_mailer/base.rb:543:in `block in deliver_mail'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/activesupport-4.2.1/lib/active_support/notifications.rb:164:in `block in instrument'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/activesupport-4.2.1/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/activesupport-4.2.1/lib/active_support/notifications.rb:164:in `instrument'
... 6 levels...
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:68:in `console'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/railties-4.2.1/lib/rails/commands.rb:17:in `<top (required)>'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `block in require'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in `load_dependency'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require'
from /home/pamio/dev/rails_apps/local/store/bin/rails:8:in `<top (required)>'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:268:in `load'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:268:in `block in load'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in `load_dependency'
from /home/pamio/.rvm/gems/ruby-2.1.1/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:268:in `load'
from /home/pamio/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/pamio/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from -e:1:in `<main>'2.1.1 :004 > reload!

Я пытался настроить mandrill, думая, что gmail мог блокировать мою электронную почту, но это тоже не сработало.

Примечание. Я хочу настроить SMTP с помощью spree3 и не использую spree_mail_settings gem. По некоторым причинам spree_mail_settings у меня не работал.

Любая помощь будет высоко оценена.

Редактировать 1: я знаю, что моя конфигурация smtp в порядке, но, возможно, мне нужно установить некоторые связанные с spree переменные конфигурации, которые позволили бы spree использовать новую конфигурацию, как и в предыдущих версиях spree. Я изучил документы и не нашел никакой помощи.

Заранее спасибо.


person Pramod Solanky    schedule 16.07.2015    source источник
comment
Что выводит cat /proc/sys/net/ipv6/conf/all/disable_ipv6?   -  person RAJ    schedule 16.07.2015
comment
Google может блокировать доступ из неизвестного места.   -  person coderhs    schedule 16.07.2015
comment
Я думаю, что domain должен быть установлен для вашего домена или может быть полностью исключен. Я использую порт 587 и :login.   -  person steve klein    schedule 16.07.2015
comment
@RAJ выход для этого 0   -  person Pramod Solanky    schedule 16.07.2015
comment
@Coderhs Я пытался включить lesssecureapp, но не повезло, я не думаю, что Google блокирует это, иначе я был бы уведомлен. Стив Кляйн, я попробовал их обоих, но безуспешно.   -  person Pramod Solanky    schedule 16.07.2015
comment
Вы видели это? Если вы работаете на сервере Google, это может быть порт, который вы используете. В противном случае я бы тщательно проверил, чтобы убедиться, что вы не используете IPV6.   -  person steve klein    schedule 16.07.2015
comment
@steveklein, да, я уже видел это, но не повезло. Я отключил ipv6, но не повезло. Важным здесь является то, что я даже не могу заставить свою учетную запись мандрила работать. Я думаю, что нужно что-то делать с весельем. хотя я не уверен   -  person Pramod Solanky    schedule 17.07.2015


Ответы (1)


Временным решением может быть отключение IPv6. Добавьте следующие строки в /etc/sysctl.conf:

#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Затем с терминала вы можете подтвердить IPv6 (0 означает, что включено и 1 означает, что отключено):

cat /proc/sys/net/ipv6/conf/all/disable_ipv6
person RAJ    schedule 16.07.2015
comment
Я отключил это, и все же я получаю Net::OpenTimeout: execution expired - person Pramod Solanky; 16.07.2015
comment
Хотите объяснить, почему отключение может решить проблему? хотя, это не так :) - person Pramod Solanky; 16.07.2015