Self managed newsletter for Slack
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
Generate a Token on your slack workspace
.env.local, complete your smtp configuration, the receivers, and your Slack token like that :
MAILER_DSN=smtp://awesome-smtp:25 RECEIVERSfirstname.lastname@example.org,email@example.com SLACK_TOKEN=xoxp-XXXXXXXXX-XXXXXXX-XXXXXXXXX
Choose your channels to browse and add them in
config/channels.json. You can check out the
config/channels.json.distto see how add a new channels
(OPTIONNAL) : Pimp your newsletter by altering parameters in
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 5.2
- FlySystem from The Php League
Thank to theirs awesome work.
If you want to customize the newsletter, all templates are in
Before testing rendering, you have to retrieve some messages :
php bin/console app:newsletter:browse -d 5
--daysis to specified how many days to retrieve. You can have lots of data by this way.
To test the view in web-browser, launch a web server :
symfony local:server:start -d # With Symfony CLI binary php -S localhost:8000 -t public # Using php built-in web-server
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 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
- Make sure it'll work with Slack App and provide a configuration guide
- Write Tests Suite
- Add translations
- Easily extend with other Team Collaboration Software (Discord, HipChat...)