我如何创建一个电子邮件确认



我想在用户注册时做一个简单的电子邮件通知。

我的用户注册工作正常,我完全按照"发送电子邮件"教程,但不能让它工作。我做错了什么?

user_controller.rb

class Admin::UsersController < InheritedResources::Base
  before_filter :admin_only
  actions :index, :show, :new, :edit, :create, :update, :destroy
  respond_to :html
#  def new
#    @user = User.new(:invitation_token => params[:invitation_token])
#    @user.email = @user.invitation.recipient_email  
#  end  
  def create
    @user = User.new(params[:user])
    UserMailer.deliver_registration_confirmation(@user) < -- where I added the mailer
    @user.save(false)
    respond_to do |format|
      format.html{ redirect_to admin_users_path}
    end
  end
  private
  def collection
    paginate_options ||= {}
    paginate_options[:page] ||= (params[:page] || 1)
    paginate_options[:per_page] ||= (params[:per_page] || 20)
    @search = User.search(params[:search])
    @users ||= @search.all.paginate(paginate_options)
  end
end

环境/production.rb

# Settings specified here will take precedence over those in config/environment.rb
config.action_mailer.default_url_options = { :host => 'alpine.totaline.com' }
config.action_mailer.raise_delivery_errors = true
# set delivery method to :smtp, :sendmail or :test
config.action_mailer.delivery_method = :smtp
# these options are only needed if you choose smtp delivery
config.action_mailer.smtp_settings = {
  :address        => 'smtp.gmail.com',
  :port           => 25,
  :domain         => 'alpine.totaline.com',
  :authentication => :login,
  :user_name      => 'emailname@gmail.com',
  :password       => 'thepassword'
}

模型/user_mailer.rb

class UserMailer < ActionMailer::Base
  def registration_confirmation(user)
    recipients  user.email
    from        "webmaster@alpinechallenge.com"
    subject     "Thank you for Registering"
    body        "You are now registered on the Alpine Challenge!"
  end  
end

看起来Gmail需要使用587端口:

# these options are only needed if you choose smtp delivery
config.action_mailer.smtp_settings = {
  :address        => 'smtp.gmail.com',
  :port           => '587',
  :domain         => 'alpine.totaline.com',
  :authentication => :login,
  :user_name      => 'emailname@gmail.com',
  :password       => 'thepassword'
}

此页面包含有关配置Gmail邮件客户端的说明

相关内容

  • 没有找到相关文章

最新更新