发布和Errno :: ECONNREFUSED(连接被拒绝 - 连接(2))

时间:2013-12-17 13:27:56

标签: ruby-on-rails ruby-on-rails-3 heroku actionmailer

我设置了一个联系表单并发布了一些内容。然后我收到了一条错误消息。

Errno::ECONNREFUSED (Connection refused - connect(2)):

我不知道如何解决这个问题。你能帮帮我吗?

☆heroku日志

013-12-17T13:14:55.445509+00:00 app[web.1]: Started POST "/contacts" for 118.237.94.47 at 2013-12-17 13:14:55 +0000
2013-12-17T13:14:55.450507+00:00 app[web.1]: Processing by ContactsController#create as HTML
2013-12-17T13:14:55.450838+00:00 app[web.1]:   Parameters: {"utf8"=>"✓", "authenticity_token"=>"2e9zz3cX0tZwYTZhaPbRRYQuZrGi31fZk4OjjF7sdeo=", "contact"=>{"name"=>"荒牧さん", "email"=>"sun@gmail.com", "content"=>"どうなんすか!"}, "commit"=>"Create Contact"}
2013-12-17T13:14:55.549141+00:00 app[web.1]:   Rendered contact_mailer/sent.text.erb (0.6ms)
2013-12-17T13:14:55.573616+00:00 heroku[router]: at=info method=POST path=/contacts host=www.tsundoku-buster.jp fwd="118.237.94.47" dyno=web.1 connect=2ms service=136ms status=500 bytes=643
2013-12-17T13:14:55.570589+00:00 app[web.1]: 
2013-12-17T13:14:55.570589+00:00 app[web.1]: Sent mail to suncountry99@gmail.com (16ms)
2013-12-17T13:14:55.570797+00:00 app[web.1]: Completed 500 Internal Server Error in 120ms
2013-12-17T13:14:55.572327+00:00 app[web.1]: 
2013-12-17T13:14:55.572327+00:00 app[web.1]: Errno::ECONNREFUSED (Connection refused - connect(2)):
2013-12-17T13:14:55.572327+00:00 app[web.1]:   app/controllers/contacts_controller.rb:6:in `create'

☆contacts_controller

 #encoding: utf-8 
class ContactsController < ApplicationController
      def create
       @contact = Contact.new(params[:contact])
       if @contact.save
        ContactMailer.sent(@contact).deliver
        redirect_to static_pages_contact_path, :notice => 'お問い合わせありがとうございました。'
      else
        render static_pages_contact_path, :alert => 'お問い合わせに不備があります。'
      end
     end
end

3 个答案:

答案 0 :(得分:2)

看起来联系人控制器正在尝试发送电子邮件。实际上,从日志中我看到ContactMailer.sent方法已被调用。

Heroku不允许您使用内部SMTP发送电子邮件。您需要使用Heroku附加组件之一。

请参阅文章Sending Email from Your App。大多数Heroku电子邮件附加组件(例如SendGrid)都可以非常直接地集成到您的Rails应用程序中。

答案 1 :(得分:0)

我遇到了同样的错误,这是因为elasticsearch服务没有运行。干脆做了: sudo service elasticsearch start

答案 2 :(得分:0)

我遇到了同样的问题,这是由fail2ban引起的。只需编辑你的/etc/fail2ban/jail.local文件,并通过在jail.local文件中设置enabled = false来禁用[ssh]和[ssh-ddos]。

$ sudo nano /etc/fail2ban/jail.local