使用rails版本3.2.5中的动作邮件程序发送电子邮件

我知道这是一个简单的问题,并且被问了很多次,我也问过这个,因为我检查的所有前一个是基于rails 3.0.0版本,我使用的是最新版本。 我有一个用户注册表单,其中包含姓名和电子邮件字段。 我想这样做当用户点击提交按钮时,用户应该将电子邮件发送到指定的电子邮件地址我使用的是rails 3.2.5版本和gem’mail’版本2.4.4开发日志文件显示邮件是发送到电子邮件地址但未在收件箱中找到。 我也知道在开发模式期间,动作邮件不会向任何地址发送邮件,但我想在开发阶段执行此操作。 我的代码是:

/config/initializers/setup_mail.rb

ActionMailer::Base.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :domain => "asciicasts.com", :user_name => "asciicasts", :password => "secret", :authentication => "plain", :enable_starttls_auto => true } 

/app/mailers/user_mailer.rb

 class UserMailer  "eifion@asciicasts.com" def registration_confirmation(user) mail(:to => user.email, :subject => "Registered") end end 

/app/controllers/users_controller.rb

 def create @user = User.new(params[:user]) respond_to do |format| if @user.save UserMailer.registration_confirmation(@user).deliver format.html { redirect_to(@user, :notice => 'User was successfully created.') } format.xml { render :xml => @user, :status => :created, :location => @user } else format.html { render :action => "new" } format.xml { render :xml => @user.errors, :status => :unprocessable_entity } end end end 

所以任何人都请帮助我。

我最近也遇到过这样的事情。

来自config/environments/development.rb

config.action_mailer.perform_deliveries = true #这个条目让我觉得应该发送电子邮件,它们是在同事开发者升级之前。

我还发现这些电子邮件没有被发送。 四处寻找,我发现config/email.yml它看起来像这样:

 development: :delivery_method: test :settings: :address:  :port: 25 

当我改变:delivery_method: test to :delivery_method: sendmail (这是我们在我公司使用的),它开始工作。

总而言之,我发现config/email.yml中的设置是最后评估的,并且将胜过您个人环境文件中的任何内容。