Я использую Ruby MRI 2.0.0 и Rails 3.2.12 на UBS Ubuntu 12.04 TLS VPS и пытаюсь настроить уведомления по электронной почте в своем приложении. Он работал нормально несколько дней назад, но не больше. Мой веб-хост - OVH.
Настройки моего SMTP:
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:user_name => '[email protected]',
:password => 'secret',
:authentication => 'plain',
:enable_starttls_auto => true
}
Использование RAILS_ENV=production rails console
:
class MyMailer < ActionMailer::Base
def test_email
sender = "[email protected]"
receiver = "[email protected]"
mail from: sender, to: receiver, subject: "Hello!", body: "World!!"
end
end
=> nil
MyMailer.test_email.deliver
Выход:
Net::OpenTimeout: execution expired
from ~/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/smtp.rb:540:in `initialize'
from ~/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/smtp.rb:540:in `open'
from ~/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/smtp.rb:540:in `tcp_socket'
from ~/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/smtp.rb:550:in `block in do_start'
from ~/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/smtp.rb:549:in `do_start'
from ~/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/smtp.rb:519:in `start'
from ~/.rvm/gems/[email protected]/gems/mail-2.4.4/lib/mail/network/delivery_methods/smtp.rb:144:in `deliver!'
from ~/.rvm/gems/[email protected]/gems/mail-2.4.4/lib/mail/message.rb:2034:in `do_delivery'
from ~/.rvm/gems/[email protected]/gems/mail-2.4.4/lib/mail/message.rb:229:in `block in deliver'
from ~/.rvm/gems/[email protected]/gems/actionmailer-3.2.12/lib/action_mailer/base.rb:415:in `block in deliver_mail'
from ~/.rvm/gems/[email protected]/gems/activesupport-3.2.12/lib/active_support/notifications.rb:123:in `block in instrument'
from ~/.rvm/gems/[email protected]/gems/activesupport-3.2.12/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
from ~/.rvm/gems/[email protected]/gems/activesupport-3.2.12/lib/active_support/notifications.rb:123:in `instrument'
from ~/.rvm/gems/[email protected]/gems/actionmailer-3.2.12/lib/action_mailer/base.rb:413:in `deliver_mail'
from ~/.rvm/gems/[email protected]/gems/mail-2.4.4/lib/mail/message.rb:229:in `deliver'
from (irb):28
from ~/.rvm/gems/[email protected]/gems/railties-3.2.12/lib/rails/commands/console.rb:47:in `start'
from ~/.rvm/gems/[email protected]/gems/railties-3.2.12/lib/rails/commands/console.rb:8:in `start'
from ~/.rvm/gems/[email protected]/gems/railties-3.2.12/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'2.0.0p0 :029 >
Я попробовал следующее:
- Драйвер
exception_notification
был добавлен в настройку несколько дней назад. Я попытался прокомментировать его строку вGemfile
, а также ее соответствующую конфигурацию и запустилbundle install
. После перезапуска сервера проблема все еще присутствует, даже если я удалю и заново создаю gemset. - Протестируйте его на виртуальной машине (точно такая же настройка, как и VPS, включая правила iptables): работает
- Отключить правила iptables: не работает
- Вручную подключиться к Gmail из VPS с помощью openssl: работает (так что это не проблема брандмауэра - см. здесь: Подключение к smtp.gmail.com через командную строку);
- Включить IMAP в настройках учетной записи Gmail (он был отключен): не работает
- Использовать другую учетную запись Gmail: не работает
- Замените Ruby 2.0.0 на Ruby 1.9.3.
- Обновление до Rails 3.2.13
Есть ли у кого-нибудь возможность понять, как решить эту проблему?
Спасибо!