长期以来,我一直在使用 Rails。现在我在 ActionMailer 中遇到了一个小问题。我想在用户注册时发送一封电子邮件以确认他的注册。我可以在开发模式下发送电子邮件,但不是在生产模式下。
异常Errno::ECONNREFUSED: Connection denied - connect(2)每次调用传递方法时都会到来。
我已经编写了以下代码。
我的 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'
}
在控制器中,我编写了以下内容:
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
我可以在本地主机中以开发模式发送电子邮件,但无法在专用服务器中发送电子邮件。
有人可以帮我吗?