Question

I'm trying to make a simple email notification when a user signs up.

My user sign up works fine, and I followed the "Sending Email" tutorial exactly but can't get it to work. What am I doing wrong?

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

environments/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'
}

models/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
Was it helpful?

Solution

Looks like for Gmail you need to use port 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'
}

This page contains notes about configuring mail clients for usage with Gmail.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top