【发布时间】:2015-07-16 19:47:33
【问题描述】:
我很难使用 rails 应用程序配置 smtp。我过去做过很多次,没有狂欢,效果很好。但由于某种原因,我无法让我的 smtp 设置与 spree 一起发送电子邮件。
这是我的配置:
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@gmail.com',
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 可能阻止了我的电子邮件,但也没有用。
注意:我希望能够使用 spree3 配置 SMTP,但我没有使用 spree_mail_settings gem。由于某些原因spree_mail_settings 对我不起作用。
任何帮助将不胜感激。
编辑 1:我知道我的 smtp 配置很好,但可能我必须设置一些 spree 相关的配置变量,让 spree 像以前版本的 spree 一样使用新配置。我浏览了文档并没有找到任何帮助。
提前致谢。
【问题讨论】:
-
cat /proc/sys/net/ipv6/conf/all/disable_ipv6的输出是什么? -
Google 可能会阻止来自未知位置的访问。
-
我认为
domain应该设置为您的域,或者可以完全省略。我使用端口 587 和 :login. -
@RAJ 是
0 -
@Coderhs 我尝试打开 lesssecureapp 但没有运气,我认为谷歌不会阻止它,否则我会收到通知。 Steve Klein,我都试过了,但都没有成功。
标签: ruby-on-rails ruby ruby-on-rails-4 spree