Как мне создать подтверждение по электронной почте? - PullRequest
0 голосов
/ 19 декабря 2011

Я пытаюсь сделать простое уведомление по электронной почте, когда пользователь регистрируется.

Моя учетная запись пользователя работает нормально, и я точно следовал учебнику "Отправка электронной почты" , но не смог заставить ее работать. Что я делаю не так?

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

1 Ответ

1 голос
/ 19 декабря 2011

Похоже, для 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...