ActionMailer
inspired Slack message objects.
Add gem 'slack-mail'
to your Gemfile
and install it.
# Basic usage.
Slack::Mail.new(text: "...").deliver_now
# Using `ActiveJob` to send async (if configured)
Slack::Mail.new(text: "...").deliver_later
# Monitor your Rails app
class ApplicationController
rescue_from StandardError do |e|
Slack::Mail.new(channel: "bots").attach_error(e).deliver_later
end
end
Valid mail attributes are
- channel
- text
- username
- as_user
- parse
- link_names
- attachments
- unfurl_links
- unfurl_media
- icon_url
- icon_emoji
all as per the Slack API (or ls Slack::Mail.new
if you've got pry)
By default, messages are "delivered" into an array at Slack::Mail.deliveries
To actually send them, you'll need to configure an incoming webhook and tell Slack::Mail
about it
Rails.application.configure do
config.slack_mail.deliver_with :perform, webhook_url: ...
You can also opt-in to storing messages (e.g. in config/environments/test.rb
)
Rails.application.configure do
config.slack_mail.deliver_with :store
end
- Fork it ( https://github.com/[my-github-username]/slack-mail/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request