Skip to content
A Symfony Project to build a newsletter from slack workspace.
PHP HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
config
public
src
templates
translations
.editorconfig
.env
.gitignore
.php_cs.dist
.php_md.xml
README.md
composer.json
composer.lock
grumphp.yml
phpstan.neon
symfony.lock

README.md

Slack Newsletter

This application allows you to generate a newsletter from your Slack channels. It goes through the channels looking for links, combines them into a html file, and sends it by email. It's ideal for keeping track of your finds when the historical Slack reaches its limit.

Installation & Configuration

  1. Clone the project and launch composer install inside.

  2. Generate a Token on your slack workspace - Currently only tested with legacy token

  3. In your .env, complete your smtp configuration and add your Slack token like that :

SLACK_TOKEN=xoxp-XXXXXXXXX-XXXXXXX-XXXXXXXXX
  1. Choose your channels to browse and add them in config/channels.json. You can check out the config/channels.json.dist to see how add a new channels

  2. Add receivers for your newsletter in config/receivers.json

  3. (OPTIONNAL) : Pimp your newsletter by altering parameters in config/package/parameters.yaml

  4. Configure your cron to execute command to browse, build, and send newsletter.

For example :

## Every day at 8am, browse channels and store them
0 8 * * * php bin/console app:newsletter:browse
## Every monday at 8:05 am, build the newsletter and send it
5 8 * * 1 php bin/console app:newsletter:build && php bin/console app:newsletter:send

Build With

Thank to theirs awesome work.

Customize the newsletter

If you want to customize the newsletter, all templates are in templates folder.

Before testing rendering, you have to retrieve some messages :

php bin/console app:newsletter:browse -d 5

The -d or --days is to specified how many days to retrieve. You can have lots of data by this way.

To test the view in web-browser, launch the built-in web server :

php bin/console server:run

and go to http://127.0.0.1:8000/test/mail

But you probably have to send emails to test compatibility with emails viewer.

You can launch theses commands to avoid archivation of messages and builded news.

php bin/console app:newsletter:build --no-archive
php bin/console app:newsletter:send --no-archive

Contribute

First of all, thank you for contributing ♥

If you find any typo/misconfiguration/... please send me a PR or open an issue.

Also, while creating your PR, please write a description which gives the context and/or explains why you are creating it.

TODOs

  • Make installation as simple as a composer create-project barth/slacknewsletter
  • Browse private channel
  • Write Tests Suite
  • Make sure it'll work with Slack App and provide a configuration guide
  • Add translations
  • Easily extend with other Team Collaboration Software (HipChat...)
You can’t perform that action at this time.