mirror of
https://github.com/dreamhunter2333/cloudflare_temp_email.git
synced 2026-09-05 23:47:50 +08:00
feat: |Actions| Tag build add worker-with-wasm-mail-parser.zip (#590)
This commit is contained in:
@@ -44,10 +44,24 @@ jobs:
|
|||||||
- name: Build Backend
|
- name: Build Backend
|
||||||
run: cd worker && pnpm install --no-frozen-lockfile && pnpm build
|
run: cd worker && pnpm install --no-frozen-lockfile && pnpm build
|
||||||
|
|
||||||
|
- name: Move worker.js
|
||||||
|
run: cd worker/dist && mv worker.js ../
|
||||||
|
|
||||||
|
- name: Build Worker with wasm mail parser
|
||||||
|
run: |
|
||||||
|
cd worker
|
||||||
|
echo "Using mail-parser-wasm-worker"
|
||||||
|
pnpm add mail-parser-wasm-worker
|
||||||
|
git apply ../.github/config/mail-parser-wasm-worker.patch
|
||||||
|
echo "Applied mail-parser-wasm-worker patch"
|
||||||
|
pnpm build
|
||||||
|
zip -r worker-with-wasm-mail-parser.zip dist/worker.js dist/*.wasm
|
||||||
|
|
||||||
- name: Upload to Release
|
- name: Upload to Release
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
frontend/frontend.zip
|
frontend/frontend.zip
|
||||||
frontend/telegram-frontend.zip
|
frontend/telegram-frontend.zip
|
||||||
worker/dist/worker.js
|
worker/worker.js
|
||||||
|
worker/worker-with-wasm-mail-parser.zip
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
- feat: | Worker | 支持多语言
|
- feat: | Worker | 支持多语言
|
||||||
- feat: | Worker | `NO_LIMIT_SEND_ROLE` 配置支持多角色, 逗号分割
|
- feat: | Worker | `NO_LIMIT_SEND_ROLE` 配置支持多角色, 逗号分割
|
||||||
|
- feat: | Actions | build 里增加 `worker-with-wasm-mail-parser.zip` 支持 UI 部署带 `wasm` 的 worker
|
||||||
|
|
||||||
## v0.8.7
|
## v0.8.7
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,25 @@
|
|||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> 如果你使用了 webhook 转发,或者 telegram bot 接受邮件,但是邮件内容是乱码,或者无法解析,你对解析的需要更高的要求,可以使用这个功能。
|
> 如果你使用了 webhook 转发,或者 telegram bot 接受邮件,但是邮件内容是乱码,或者无法解析,你对解析的需要更高的要求,可以使用这个功能。
|
||||||
|
|
||||||
## 修改代码
|
## UI 部署
|
||||||
|
|
||||||
|
1. 下载 [worker-with-wasm-mail-parser.zip](https://github.com/dreamhunter2333/cloudflare_temp_email/releases/latest/download/worker-with-wasm-mail-parser.zip)
|
||||||
|
|
||||||
|
2. 回到 `Overview`,找到刚刚创建的 worker,点击 `Edit Code`, 删除原来的文件,上传 `worker.js` 和 `wasm` 后缀的文件, 点击 `Deploy`
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> 上传需要先点击左侧菜单的 Explorer,
|
||||||
|
> 在文件列表的窗口里点击鼠标右键,在右键菜单里找到 `Upload`,
|
||||||
|
> 请参考下面的截图
|
||||||
|
>
|
||||||
|
> 参考: [issues156](https://github.com/dreamhunter2333/cloudflare_temp_email/issues/156#issuecomment-2079453822)
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
## CLI 部署
|
||||||
|
|
||||||
|
### 修改代码
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd worker
|
cd worker
|
||||||
@@ -56,7 +74,7 @@ export const commonParseMail = async (raw_mail: string | undefined | null): Prom
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## 部署
|
### 部署
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd worker
|
cd worker
|
||||||
|
|||||||
@@ -339,26 +339,26 @@ export const getAllowDomains = async (c: Context<HonoCustomType>): Promise<strin
|
|||||||
return user_role?.domains || getDefaultDomains(c);;
|
return user_role?.domains || getDefaultDomains(c);;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function sendWebhook(settings: WebhookSettings, formatMap: WebhookMail): Promise<{ success: boolean, message?: string }> {
|
export async function sendWebhook(
|
||||||
|
settings: WebhookSettings, formatMap: WebhookMail
|
||||||
|
): Promise<{ success: boolean, message?: string }> {
|
||||||
// send webhook
|
// send webhook
|
||||||
let body = settings.body;
|
let body = settings.body;
|
||||||
for (const key of Object.keys(formatMap)) {
|
for (const key of Object.keys(formatMap)) {
|
||||||
/* eslint-disable no-useless-escape */
|
|
||||||
body = body.replace(
|
body = body.replace(
|
||||||
new RegExp(`\\$\\{${key}\\}`, "g"),
|
new RegExp(`\\$\\{${key}\\}`, "g"),
|
||||||
JSON.stringify(
|
JSON.stringify(
|
||||||
formatMap[key as keyof WebhookMail]
|
formatMap[key as keyof WebhookMail]
|
||||||
).replace(/^"(.*)"$/, '\$1')
|
).replace(/^"(.*)"$/, '$1')
|
||||||
);
|
);
|
||||||
/* eslint-enable no-useless-escape */
|
|
||||||
}
|
}
|
||||||
console.log("send webhook", settings.url, settings.method, settings.headers, body);
|
|
||||||
const response = await fetch(settings.url, {
|
const response = await fetch(settings.url, {
|
||||||
method: settings.method,
|
method: settings.method,
|
||||||
headers: JSON.parse(settings.headers),
|
headers: JSON.parse(settings.headers),
|
||||||
body: body
|
body: body
|
||||||
});
|
});
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
|
console.log("send webhook error", settings.url, settings.method, settings.headers, body);
|
||||||
console.log("send webhook error", response.status, response.statusText);
|
console.log("send webhook error", response.status, response.statusText);
|
||||||
return { success: false, message: `send webhook error: ${response.status} ${response.statusText}` };
|
return { success: false, message: `send webhook error: ${response.status} ${response.statusText}` };
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user