barth/slacknewsletter

Slack 自管理通讯简报


README

Slack Newsletter Preview

Slack Newsletter

CI Version

本应用程序允许您从您的 Slack 频道生成通讯简报。它会遍历频道寻找链接,将它们组合成一个 HTML 文件,并通过电子邮件发送。当历史 Slack 达到限制时,这非常适合跟踪您的发现。

安装与配置

  1. 克隆项目,并在内部运行 composer install

  2. 在您的 Slack 工作空间生成一个 令牌

  3. 在您的 .env.local 中,完成您的 SMTP 配置、接收者以及您的 Slack 令牌,如下所示

MAILER_DSN=smtp://awesome-smtp:25
RECEIVERS=me@example.net,mailing-list@example.net
SLACK_TOKEN=xoxp-XXXXXXXXX-XXXXXXX-XXXXXXXXX
  1. 选择您要浏览的频道并将它们添加到 config/channels.json 中。您可以通过查看 config/channels.json.dist 来了解如何添加新频道。

  2. (可选) : 通过在 config/package/parameters.yaml 中修改参数来美化您的通讯简报。

  3. 配置您的 cron 以执行浏览、构建和发送通讯简报的命令。

例如

## 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

构建工具

感谢他们的出色工作。

自定义通讯简报

如果您想自定义通讯简报,所有模板都在 templates 文件夹中。

在测试渲染之前,您必须检索一些消息

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

-d--days 用于指定要检索的天数。您可以通过这种方式获得大量数据。

要测试在网页浏览器中的查看效果,启动一个网络服务器

symfony local:server:start -d # With Symfony CLI binary
php -S localhost:8000 -t public # Using php built-in web-server

然后转到 http://127.0.0.1:8000/test/mail

但您可能需要发送电子邮件以测试与电子邮件查看器的兼容性。

您可以通过以下命令启动这些命令以避免存档消息和构建的新闻。

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

贡献

首先,感谢您的贡献♥

如果您发现任何错误/配置错误/...,请发送一个 PR 或创建一个问题。

另外,在创建您的 PR 时,请写一个描述,它提供了上下文或解释了您为什么要创建它。

TODOs

  • 使安装尽可能简单,例如 composer create-project barth/slacknewsletter
  • 浏览私有频道
  • 确保它与 Slack App 兼容,并提供配置指南
  • 编写测试套件
  • 添加翻译
  • 轻松扩展以支持其他团队协作软件(Discord、HipChat...)