0

我正在使用 Rails 4 和 Ruby 2.0.0 开发一个 rails 应用程序。我的联系页面中有一个表格,我想从该表格向管理员发送电子邮件。我选择使用 smtp,这是我的配置文件:

# config/initializers/setup_mail.rb
ActionMailer::Base.smtp_settings = {
    adress:               "smtp.gmail.com",
    port:                 587,
    domain:               "gmail.com",
    user_name:            "my-gmail-login@gmail.com",
    password:             "my-gmail-password",
    authentication:       :plain,
    enable_starttls_auto: true
}

ActionMailer::Base.default_url_options[:host] = "localhost:3000"

ActionMailer::Base.raise_delivery_errors = true

这是我的邮件控制器:

# mailers/user_mailer.rb
class UserMailer < ActionMailer::Base
  default from: "my-gmail-login@gmail.com"

  def welcome_email(user)
    @user = user
    @url = "localhost:3000/signin"
    mail(to:      user.email,
         subject: "Welcome")
  end
end

最后,我的邮件视图:

# app/views/user_mailer/welcome_mailer.html.erb
<h1>Congratulations "#{@user.firstname} #{@user.lastname}"</h1>

当我打开“$> rails 控制台”时,我输入以下内容:

$> UserMailer.welcome_email(User.first).deliver

鉴于 rails 文档http://guides.rubyonrails.org/action_mailer_basics.html,这就是我所需要的。不幸的是我有一个连接错误:

Sent mail to xxx@gmail.com (10.4ms)
Date: Tue, 21 May 2013 23:09:49 +0200
From: my-gmail-login@gmail.com
To: xxx@gmail.com
Message-ID: <519be29...-Mac.local.mail>
Subject: =?UTF-8?Q?Welcome?=
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<h1>Congratulations XXX YYY</h1>=

Errno::ECONNREFUSED: Connection refused - connect(2)
    from /usr/local/rvm/rubies/ruby-2.0.0-rc2/lib/ruby/2.0.0/net/smtp.rb:540:in `initialize'
    from /usr/local/rvm/rubies/ruby-2.0.0-rc2/lib/ruby/2.0.0/net/smtp.rb:540:in `open'
    from /usr/local/rvm/rubies/ruby-2.0.0-rc2/lib/ruby/2.0.0/net/smtp.rb:540:in `tcp_socket'
    from /usr/local/rvm/rubies/ruby-2.0.0-rc2/lib/ruby/2.0.0/net/smtp.rb:550:in `block in do_start'
    from /usr/local/rvm/rubies/ruby-2.0.0-rc2/lib/ruby/2.0.0/timeout.rb:65:in `timeout'
    from /usr/local/rvm/rubies/ruby-2.0.0-rc2/lib/ruby/2.0.0/net/smtp.rb:549:in `do_start'
    from /usr/local/rvm/rubies/ruby-2.0.0-rc2/lib/ruby/2.0.0/net/smtp.rb:519:in `start'
    from /usr/local/rvm/gems/ruby-2.0.0-rc2/gems/mail-2.5.3/lib/mail/network/delivery_methods/smtp.rb:136:in `deliver!'
    from /usr/local/rvm/gems/ruby-2.0.0-rc2/gems/mail-2.5.3/lib/mail/message.rb:2033:in `do_delivery'
    from /usr/local/rvm/gems/ruby-2.0.0-rc2/gems/mail-2.5.3/lib/mail/message.rb:229:in `block in deliver'
    from /usr/local/rvm/gems/ruby-2.0.0-rc2/gems/actionmailer-4.0.0.beta1/lib/action_mailer/base.rb:456:in `block in deliver_mail'
    from /usr/local/rvm/gems/ruby-2.0.0-rc2/gems/activesupport-4.0.0.beta1/lib/active_support/notifications.rb:158:in `block in instrument'
    from /usr/local/rvm/gems/ruby-2.0.0-rc2/gems/activesupport-4.0.0.beta1/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
    from /usr/local/rvm/gems/ruby-2.0.0-rc2/gems/activesupport-4.0.0.beta1/lib/active_support/notifications.rb:158:in `instrument'
    from /usr/local/rvm/gems/ruby-2.0.0-rc2/gems/actionmailer-4.0.0.beta1/lib/action_mailer/base.rb:454:in `deliver_mail'
    from /usr/local/rvm/gems/ruby-2.0.0-rc2/gems/mail-2.5.3/lib/mail/message.rb:229:in `deliver'
    from (irb):1
    from /usr/local/rvm/gems/ruby-2.0.0-rc2/gems/railties-4.0.0.beta1/lib/rails/commands/console.rb:88:in `start'
    from /usr/local/rvm/gems/ruby-2.0.0-rc2/gems/railties-4.0.0.beta1/lib/rails/commands/console.rb:9:in `start'
    from /usr/local/rvm/gems/ruby-2.0.0-rc2/gems/railties-4.0.0.beta1/lib/rails/commands.rb:64:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'2.0.0dev :002 > 

你知道这个错误可能来自哪里吗?以及如何解决?

谢谢您的帮助。

4

1 回答 1

0

已解决:这是一个语法问题。在配置文件中,地址应该是地址!

于 2013-05-25T21:32:49.657 回答