gpt4 book ai didi

ruby-on-rails - Errno::ECONNREFUSED:连接被拒绝 - connect(2) for action mailer

转载 作者:数据小太阳 更新时间:2023-10-29 06:22:58 25 4
gpt4 key购买 nike

我长期以来一直在使用 Rails。现在我在 ActionMailer 中遇到了一个小问题。我想在用户注册时发送一封电子邮件以确认他的注册。我可以在开发模式下发送电子邮件,但在生产模式下不能
异常 Errno::ECONNREFUSED: Connection refused - connect(2) 每次调用 deliver 方法时都会出现。
我写了下面的代码。
我的 SMTP 配置如下:
config.action_mailer.default_url_options = { :host => "localhost:3000"}

  config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true

config.action_mailer.smtp_settings = {
:openssl_verify_mode => OpenSSL::SSL::VERIFY_NONE,
:ssl => true,
:enable_starttls_auto => true, #this is the important stuff!
:address => 'smtp.xxxx.xxx',
:port => xxx,
:domain => 'xxxxxx',
:authentication => :plain,
:user_name => 'xxxxxxx@xxx.xxx',
:password => 'xxxxxxxxx'
}

在 Controller 中,我写了以下内容:

def confirm_registration_in_c       
@user = User.find_by_email(asdf123@gmail.com)
if @user
UserMailer.confirm_registration(@user).deliver
end
end

在我的 user_mailer.rb 中:

class UserMailer < ActionMailer::Base
default from: "from@example.com"

def confirm_registration(user)
@user = user
@user_name = @user.name
email = @user.email
mail(:to => email, :subject => "Reset your password")
end
end

我可以在本地主机中以开发模式发送电子邮件,但无法在专用服务器中发送电子邮件。
有人可以帮帮我吗?

最佳答案

在我的情况下,当我尝试完成发送电子邮件的 Rails 应用程序教程时遇到了类似的问题,Heroku 日志不断告诉我

......

Errno::ECONNREFUSED(连接被拒绝 - connect(2) for "localhost"port 25):

......

将我的代码与作者的代码进行比较后,我发现我没有在 config/environments/production.rb 文件中设置我的 ActionMailer 配置。

然后我开始意识到我只是为发送电子邮件配置了我的 config/environments/development.rb,但我还没有为我的 config/environments/production 配置它。 rb.

因此,当您的应用在开发和生产中的行为不同时,您可以检查它。

关于ruby-on-rails - Errno::ECONNREFUSED:连接被拒绝 - connect(2) for action mailer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17141004/

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