Files

54 lines
1.5 KiB
Markdown

# Cloud Mail Worker
This Worker receives every address at `yyggslive.cc.cd`, stores messages in D1,
and exposes the API expected by this repository's `cloudmail` provider.
## Deploy
1. Install Node.js 20+ and authenticate:
```sh
npm install
npx wrangler login
```
2. Create the D1 database and copy the returned `database_id` into
`wrangler.toml`:
```sh
npm run db:create
npm run db:migrate
```
3. Generate a long random API token and store it as a Worker secret:
```sh
npx wrangler secret put API_TOKEN
npm run deploy
```
4. In the Cloudflare dashboard, enable Email Routing for `yyggslive.cc.cd`.
Add an Email Worker route for `*@yyggslive.cc.cd` that targets this Worker.
Cloudflare will show the MX records that must be present in DNS.
5. Put the deployed Worker URL and the token in the root `config.json`:
```json
{
"email_provider": "cloudmail",
"cloudmail_api_base": "https://cloudmail-inbox.<your-subdomain>.workers.dev",
"cloudmail_public_token": "the API_TOKEN value",
"cloudmail_domains": "yyggslive.cc.cd",
"cloudmail_path_messages": "/api/public/emailList"
}
```
## API
`POST /api/public/emailList` requires an `Authorization` header containing the
configured token. It accepts `{ "toEmail": "name@yyggslive.cc.cd", "size": 20 }`
and returns `{ "code": 200, "data": [...] }`.
The Worker stores message bodies in D1. Add a scheduled cleanup query before
using it long-term, for example deleting messages older than seven days.