SlackMailer

Installation

Add this line to your application's Gemfile:

gem 'slack_mailer'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install slack_mailer

Dependencies

Before using game you need install sidekiq in to your project.

Configuring

Add queue for sidekiq in to config/sidekiq.yml

- [slack_messages, 1]

Create configuration file config/initializers/slack_mailer.rb

Slack::Mailer.configure do |config|
  config.templates_path = "#{Rails.root}/app/views/slack_templates/"
  config.templates_type = 'text'
  config.erb_in_templates = true
  config.slack_hook_urls = ['https://hooks.slack.com/services/...........',
                            'https://hooks.slack.com/services/...........']
end

Usage

app/slack_mailers/user_mailer.rb

class UserMailer < Slack::Mailer

  def created(user)
    @user = user
    mail(to: 'channel_name', template: 'created')
  end

end

If you want to send message via Mailer without sidekiq

class UserMailer < Slack::Mailer

  def created(user)
    @user = user
    mail(to: 'channel_name', template: 'created', use_sidekiq: false)
  end

end

Mailer will be using template app/views/slack_templates/user_mailer/created.text.erb

Name: <%= @user.name %>
Full name: <%= @user.full_name %>
Phone: <%= @user.phone %>

Sending messages

UserMailer.created(user)

Sending small messages(one line message)

Slack::Mailer.send_message('#channel', 'name', 'message')

Sending message bypassing sidekiq

Slack::Mailer.send_direct_message('#channel', 'name', 'message')

Also you can do this by using slack-notifier