通过localhost在ROR应用程序中向注册用户发送确认电子邮件

在我的ROR应用程序中,我正在尝试在注册时向我的注册用户发送确认电子邮件,我的网站目前在localhost上。 我收到此错误:

"undefined method `recipients' for #" 

这是我的代码;

development.rb

 config.action_mailer.delivery_method = :smtp config.action_mailer.default_url_options = { :host => "localhost:3000"} config.action_mailer.smtp_settings = { :address => "smtp.gmail.com", :port => "587", :authentication => :login, :user_name => "myemailid@gmail.com", :password => "myrealpassword" } 

Users_controller.rb

 def new UserMailer.registration_confirmation(@user).deliver end def create @user = User.new(params[:user]) if @user.save UserMailer.registration_confirmation(@user).deliver sign_in @user flash[:success] = "Welcome!" redirect_to @user else render 'new' end end 

user_mailer.rb

 class UserMailer  user end end 

** development.rb **

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

** Users_controller.rb **

 def new UserMailer.registration_confirmation(@user).deliver end def create @user = User.new(params[:user]) if @user.save UserMailer.registration_confirmation(@user).deliver sign_in @user flash[:success] = "Welcome!" redirect_to @user else render 'new' end end 

** User_mailer.rb **

  def registration_confirmation(user) @message = 'whatever you want to say here!' mail(:from => "myemailid@gmail.com", :to => user.email, :subject => "Thank you for registration") end 

** / app / views / user_mailer / registration_confirmation.text.erb *

 <%= @message %> 

这就是我在开发模式中所做的,它的工作原理

你使用的是什么版本的Rails?

在版本3.2中发送的电子邮件已更改(我相信)

http://api.rubyonrails.org/classes/ActionMailer/Base.html

尝试:

UserMailer.registration_confirmation(@user).deliver

这是你的user_mailer.rb

 user_mailer.rb class UserMailer < ActionMailer::Base def registration_confirmation(user) recipients user.email from "myemailid@gmail.com" subject "Thank you for registration" body :user => user end 

尝试改为:

 class UserMailer < ActionMailer::Base default from: "myemailid@gmail.com" def registration_confirmation(user) mail(to: user.email, subject: "Thank you for registration") end end 

并在views / user_mailer中设置适当的视图,例如registration_confirmation.html.erb