app/models/user_mailer.rb
class UserMailer < ActionMailer::Base
  def signup_notification(user)
    setup_email(user)
    @subject    += 'Please activate your new account'
    @body[:url]  = "#{APP_CONFIG[:site_url]}/activate/#{user.activation_code}"
  end
  
  def activation(user)
    setup_email(user)
    @subject    += 'Your account has been activated!'
    @body[:url]  = APP_CONFIG[:site_url]
  end
  
  def termination_notification(user)
    setup_email(user)
    @subject    += 'Your account has been terminated!'
    @body[:url]  = APP_CONFIG[:site_url]
  end
  
  def update_notification(user)
    setup_email(user)
    @subject    += 'Your account details have been updated'
    @body[:url]  = APP_CONFIG[:site_url]
    @body[:password] = (user.password == "") ? "[Unchanged]" : user.password
  end
  
  protected
    def setup_email(user)
      @recipients  = "#{user.email}"
      @from        = APP_CONFIG[:admin_email]
      @subject     = "[#{APP_CONFIG[:site_name]}] "
      @sent_on     = Time.now
      @body[:user] = user
    end
end
