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.
-
Clone the project and launch
composer install
inside. -
Generate a Token on your slack workspace - Currently only tested with legacy token
-
In your
.env
, complete your smtp configuration and add your Slack token like that :
SLACK_TOKEN=xoxp-XXXXXXXXX-XXXXXXX-XXXXXXXXX
-
Choose your channels to browse and add them in
config/channels.json
. You can check out theconfig/channels.json.dist
to see how add a new channels -
Add receivers for your newsletter in
config/receivers.json
-
(OPTIONNAL) : Pimp your newsletter by altering parameters in
config/package/parameters.yaml
-
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
- Symfony 4.0
- symfony/flex
- symfony/console
- symfony/swiftmailer-bundle
- symfony/yaml
- FlySystem from The Php League
- Frlnc Php Slack
- Embed
- Carbon
Thank to theirs awesome work.
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
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.
- 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...)