gpt4 book ai didi

ruby-on-rails - 在 rails 中使用邮件表单进行联系:Errno::ECONNREFUSED: Connection refused - connect(2)

转载 作者:数据小太阳 更新时间:2023-10-29 08:47:28 24 4
gpt4 key购买 nike

在你问之前,我已连接到互联网。我已经尝试在我的 herokuapp 上使用表单,在我的本地主机上使用表单,但都没有用。他们应该发送到我的电子邮件。我也尝试将它与控制台一起使用...

c = Contact.new(:name => 'Jose', :email => 'bob@bob.com', :message => 'blah')c.deliver

这是我得到这个的地方......

Errno::ECONNREFUSED: Connection refused - connect(2)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/smtp.rb:540:in `initialize'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/smtp.rb:540:in `open'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/smtp.rb:540:in `tcp_socket'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/smtp.rb:550:in `block in do_start'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/timeout.rb:66:in `timeout'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/smtp.rb:549:in `do_start'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/smtp.rb:519:in `start'
from /Library/Ruby/Gems/2.0.0/gems/mail-2.5.4/lib/mail/network/delivery_methods/smtp.rb:112:in `deliver!'
from /Library/Ruby/Gems/2.0.0/gems/mail-2.5.4/lib/mail/message.rb:2129:in `do_delivery'
from /Library/Ruby/Gems/2.0.0/gems/mail-2.5.4/lib/mail/message.rb:232:in `block in deliver'
from /Library/Ruby/Gems/2.0.0/gems/actionmailer-4.0.3/lib/action_mailer/base.rb:456:in `block in deliver_mail'
from /Library/Ruby/Gems/2.0.0/gems/activesupport-4.0.3/lib/active_support/notifications.rb:159:in `block in instrument'
from /Library/Ruby/Gems/2.0.0/gems/activesupport-4.0.3/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
from /Library/Ruby/Gems/2.0.0/gems/activesupport-4.0.3/lib/active_support/notifications.rb:159:in `instrument'
from /Library/Ruby/Gems/2.0.0/gems/actionmailer-4.0.3/lib/action_mailer/base.rb:454:in `deliver_mail'
from /Library/Ruby/Gems/2.0.0/gems/mail-2.5.4/lib/mail/message.rb:232:in `deliver'
from /Library/Ruby/Gems/2.0.0/gems/mail_form-1.5.0/lib/mail_form/delivery.rb:151:in `deliver!'
from /Library/Ruby/Gems/2.0.0/gems/activesupport-4.0.3/lib/active_support/callbacks.rb:386:in `_run__1162424905731419627__deliver__callbacks'
from /Library/Ruby/Gems/2.0.0/gems/activesupport-4.0.3/lib/active_support/callbacks.rb:80:in `run_callbacks'
from /Library/Ruby/Gems/2.0.0/gems/mail_form-1.5.0/lib/mail_form/shim.rb:49:in `deliver'
from (irb):2
from /Library/Ruby/Gems/2.0.0/gems/railties-4.0.3/lib/rails/commands/console.rb:90:in `start'
from /Library/Ruby/Gems/2.0.0/gems/railties-4.0.3/lib/rails/commands/console.rb:9:in `start'
from /Library/Ruby/Gems/2.0.0/gems/railties-4.0.3/lib/rails/commands.rb:62:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'irb(main):003:0>

我在 Contact.rb 中的代码

class Contact < MailForm::Base
attribute :name, :validate => true
attribute :email, :validate => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i
attribute :message
attribute :nickname, :captcha => true

# Declare the e-mail headers. It accepts anything the mail method
# in ActionMailer accepts.
def headers
{
:subject => "Someone contacted you on your website!",
:to => "myemail@gmail.com",
:from => %("#{name}" <#{email}>)
}
end
end

我在 haml 中的联系表

.row
.large-8.small-centered.columns
%div{align: "center"}
%h2 Send A message to Us
= form_for @contact, :html => {:class => 'form-horizontal' } do |f|
.row
.large-12.columns
%h2 Name
= f.text_field :name, :required => true, :placeholder => 'John Smith'
.row
.large-12.columns
%h2 Email
= f.text_field :email, :required => true, :placeholder => 'You@example.com'
.row
.large-12.columns
%h2 Message
= f.text_area :message, :as => :text, :required => true, :size => "30x10"
.hidden
= f.text_field :nickname, :hint => 'Leave this field blank!'
%div
= f.submit 'Send message'

健身房也安装好了

gem 'mail_form'
gem 'simple_form'

路线.rb

  match '/contacts', to: 'contacts#new', via: 'get'
resources "contacts", only: [:new, :create]

联系人 Controller

class ContactsController < ApplicationController
def new
@contact = Contact.new
end

def create
@contact = Contact.new(params[:contact])
@contact.request = request
if @contact.deliver
redirect_to(root_path, :notice => "Thank you for contacting me. I will reply shortly!")
else
flash.now[:error] = 'Cannot send message.'
render :new
end
end
end

我的开发配置(本地主机)

 config.action_mailer.raise_delivery_errors = true

config.action_mailer.default_url_options = { :host => 'localhost:3000' }


config.action_mailer.delivery_method = :smtp

我的作品(针对 Heroku)

config.action_mailer.default_url_options = { :host => 'myapp.herokuapp.com' }

config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = false
config.action_mailer.default :charset => "utf-8"

config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
domain: ENV["GMAIL_DOMAIN"],
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["GMAIL_USERNAME"],
password: ENV["GMAIL_PASSWORD"]
}

我真的不知道为什么会这样,这里对这个错误的其他解释对我不起作用。

最佳答案

我能够解决这个问题。愚蠢的我忘了添加 gmail 邮件程序。我没有意识到我需要邮件形式的它。我使用的教程从未放入此类信息。

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'gmail.com',
user_name: 'myname@gmail.com',
password: 'mypassword',
authentication: 'plain',
enable_starttls_auto: true }

关于ruby-on-rails - 在 rails 中使用邮件表单进行联系:Errno::ECONNREFUSED: Connection refused - connect(2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23407320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com