【发布时间】:2015-06-01 12:21:39
【问题描述】:
红宝石版本 2.2.0
Rails 4.1.4
actionmailer- 4.1.4
邮件 - 2.5.4
在rails c(开发)中输入“Mailer.method.deliver”时遇到以下错误日志
Errno::ECONNREFUSED: Connection refused - connect(2) for "localhost" port 25
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/2.2.0/net/smtp.rb:541:in `initialize'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/2.2.0/net/smtp.rb:541:in `open'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/2.2.0/net/smtp.rb:541:in `tcp_socket'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/2.2.0/net/smtp.rb:551:in `block in do_start'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/2.2.0/timeout.rb:89:in `block in timeout'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/2.2.0/timeout.rb:99:in `call'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/2.2.0/timeout.rb:99:in `timeout'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/2.2.0/net/smtp.rb:550:in `do_start'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/2.2.0/net/smtp.rb:520:in `start'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/mail-2.5.4/lib/mail/network/delivery_methods/smtp.rb:112:in `deliver!'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/mail-2.5.4/lib/mail/message.rb:2129:in `do_delivery'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/mail-2.5.4/lib/mail/message.rb:232:in `block in deliver'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/actionmailer-4.1.4/lib/action_mailer/base.rb:527:in `block in deliver_mail'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activesupport-4.1.4/lib/active_support/notifications.rb:159:in `block in instrument'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activesupport-4.1.4/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activesupport-4.1.4/lib/active_support/notifications.rb:159:in `instrument'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/actionmailer-4.1.4/lib/action_mailer/base.rb:525:in `deliver_mail'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/mail-2.5.4/lib/mail/message.rb:232:in `deliver'
from (irb):4
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/railties-4.1.4/lib/rails/commands/console.rb:90:in `start'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/railties-4.1.4/lib/rails/commands/console.rb:9:in `start'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:69:in `console'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/railties-4.1.4/lib/rails/commands.rb:17:in `<top (required)>'
当然,我在 development.rb 中添加邮件配置(下)
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:domain => "gmail.com",
:port => 587,
:authentication => :plain,
:user_name => "email",
:password => "password",
:enable_starttls_auto => true
}
在我调试之后..
# mail-2.5.4/lib/mail/network/delivery_methods/smtp.rb
# before line: 112
raise settings.to_s #added
smtp.start(settings[:domain], settings[:user_name], settings[:password], settings[:authentication]) do |smtp_obj|
...
...
我可以看到设置哈希具有从 environment/development.rb 添加的默认变量(:符号)和自定义变量(:字符串)。
RuntimeError: {:address=>"localhost", :port=>25, :domain=>"localhost.localdomain", :user_name=>nil, :password=>nil, :authentication=>nil, :enable_starttls_auto=>true, :openssl_verify_mode=>nil, :ssl=>nil, :tls=>nil, "address"=>"smtp.gmail.com", "port"=>587, "authentication"=>"plain", "user_name"=>"email", "password"=>"password", "enable_starttls_auto"=>true}
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/mail-2.5.4/lib/mail/network/delivery_methods/smtp.rb:113:in `deliver!'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/mail-2.5.4/lib/mail/message.rb:2129:in `do_delivery'
from /Users/KimJaeseong/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/mail-2.5.4/lib/mail/message.rb:232:in `block in deliver'
...
...
【问题讨论】:
标签: ruby-on-rails actionmailer