我设置了一个联系表单并发布了一些内容。然后我收到了一条错误消息。
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
答案 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