{"id":26022411,"url":"https://github.com/gfreezy/mailhook","last_synced_at":"2025-06-24T03:12:16.602Z","repository":{"id":140603045,"uuid":"348044934","full_name":"gfreezy/mailhook","owner":"gfreezy","description":"自动将邮件转发到飞书","archived":false,"fork":false,"pushed_at":"2024-06-28T11:00:49.000Z","size":380,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-06T09:59:14.221Z","etag":null,"topics":["bot","feishu","hook","mail"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gfreezy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-15T16:30:44.000Z","updated_at":"2025-02-20T13:05:59.000Z","dependencies_parsed_at":"2024-06-26T09:57:10.427Z","dependency_job_id":"9866e1bf-0ca6-4d5d-a1d8-46494e10385b","html_url":"https://github.com/gfreezy/mailhook","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/gfreezy/mailhook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gfreezy%2Fmailhook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gfreezy%2Fmailhook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gfreezy%2Fmailhook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gfreezy%2Fmailhook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gfreezy","download_url":"https://codeload.github.com/gfreezy/mailhook/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gfreezy%2Fmailhook/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261595784,"owners_count":23182249,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","feishu","hook","mail"],"created_at":"2025-03-06T09:55:13.152Z","updated_at":"2025-06-24T03:12:16.574Z","avatar_url":"https://github.com/gfreezy.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# Mailhook\n\n自动将邮件转发到飞书群。邮件支持附件，附件也会自动转发到飞书群。\n\n## 机器人使用方法\n\n1. 将机器人拉入群\n2. 机器人会回复一个自动生成的邮件地址，往这个邮件地址发送的邮件会自动转发到群内\n3. 从群中删除机器人可关闭转发功能\n4. 在群内 at 机器人会自动回复邮件地址\n\n## 如何配置飞书机器人\n在飞书开放平台创建一个应用，获取 app id 和 app secret，然后配置事件订阅 URL 为 `http://your.domain/event`。\n\n## 如何启动\n\n```bash\nFEISHU_APP_ID=app_id FEISHU_APP_SECRET=app_secret MAIL_DOMAIN=mail.domain WEB_DOMAIN=web.domain mailhook\n```\n\n- `FEISHU_APP_ID` 和 `FEISHU_APP_SECRET` 为飞书应用的 app id 和 app secret\n- `MAIL_DOMAIN` 为邮件域名，用于生成邮件地址。例如 `mail.xcf.io` 生成的邮件地址为 `e89sadfs98ydf@mail.xcf.io`, `xcf.io` 生成的邮件地址为 `e89sadfs98ydf@xcf.io`。\n- `WEB_DOMAIN` 为网站域名，用于生成原始邮件下载地址\n\n## 开放端口\n\n`Mailhook` 启动后会监听：\n\n1. `8088` 端口，用于接收飞书的回调。\n2. `25` 端口，用于接收邮件。\n\n因为监听了 25 端口，所以启动需要 root 权限。\n\n## DNS 配置\n\n如果自动生成的域名为 `e89sadfs98ydf@xcf.io`，则需要在 `xcf.io` DNS 中加入 MX 记录。IP 地址对应为服务部署的 IP 地址。\n\n```\nMX    @      12.23.3.12\n```\n\n如果自动生成的域名为 `e89sadfs98ydf@mail.xcf.io`，则需要在 `xcf.io` DNS 中加入 MX 记录。IP 地址对应为服务部署的 IP 地址。\n\n```\nMX    mail      12.23.3.12\n```\n\n## Docker 启动\n```bash\ndocker run -p 8088:8088 -p 25:25 -e FEISHU_APP_ID=app_id -e FEISHU_APP_SECRET=app_secret -e MAIL_DOMAIN=mail.domain -e WEB_DOMAIN=web.domain gfreezy/mailhook\n```\n\n## Docker-compose 启动\n\n1. 修改 `docker-compose.yml` 中的环境变量: FEISHU_APP_ID, FEISHU_APP_SECRET, MAIL_DOMAIN, WEB_DOMAIN\n\n2. 启动\n\n```bash\ndocker-compose up\n```\n\n## Release New Docker Image\n```bash\n./release-image.sh\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgfreezy%2Fmailhook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgfreezy%2Fmailhook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgfreezy%2Fmailhook/lists"}