Vmail-可自己部署的开源临时邮箱服务

Vmail-可自己部署的开源临时邮箱服务-小T爱分享网
Vmail-可自己部署的开源临时邮箱服务
此内容为免费资源,请登录后查看
T币-1
免费资源
图片-小T爱分享网

前言

Vmail是一个使用Cloudflare email worker实现的临时电子邮件服务,有效期24小时,支持多语言。

项目地址:https://vmail.dev/(作者成品)

  • 接收电子邮件(email worker)
  • 显示电子邮件(remix)
  • 邮件存储(sqlite)

worker接收电子邮件 -> 保存到数据库 -> 客户端查询电子邮件

Vmail-可自己部署的开源临时邮箱服务-7bccb97e4320240319202755.png-其他语言、在线工具-小T爱分享网

自托管

准备工作

  • Cloudflare 账户(email worker)
  • 托管在 Cloudflare 上的域名
  • turso sqlite(个人免费计划足够)

步骤

1.注册一个 turso 账户,创建数据库,并创建一个emails

注册后,系统会提示您创建一个数据库。在这里我将其命名为 vmail

1Vmail-可自己部署的开源临时邮箱服务--其他语言、在线工具-小T爱分享网

然后,创建一个名为 emails 的表。

选择您的数据库,您会看到“编辑表”按钮,点击并进入:

2Vmail-可自己部署的开源临时邮箱服务--其他语言、在线工具-小T爱分享网

⚠️ 注意:左上角有一个加号按钮,我尝试点击它没有任何提示或效果,所以我使用了 turso 提供的 cli 来初始化表。

Cli文档:https://docs.turso.tech/cli/introduction

Linux (或 mac/windows) 终端执行:

# 安装(安装后记得重启终端生效)
curl -sSfL https://get.tur.so/install.sh | bash

# 登录账户
turso auth login

# 连接到您的Turso数据库
turso db shell <database-name>

将sql脚本复制到终端运行(packages/database/drizzle/0000_sturdy_arclight.sql):

CREATE TABLE `emails` (
 `id` text PRIMARY KEY NOT NULL,
 `message_from` text NOT NULL,
 `message_to` text NOT NULL,
 `headers` text NOT NULL,
 `from` text NOT NULL,
 `sender` text,
 `reply_to` text,
 `delivered_to` text,
 `return_path` text,
 `to` text,
 `cc` text,
 `bcc` text,
 `subject` text,
 `message_id` text NOT NULL,
 `in_reply_to` text,
 `references` text,
 `date` text,
 `html` text,
 `text` text,
 `created_at` integer NOT NULL,
 `updated_at` integer NOT NULL
);

2.部署 email worker

git clone https://github.com/yesmore/vmail

cd vmail

# 安装依赖
pnpm install

在 vmail/apps/email-worker/wrangler.toml 文件中填写必要的环境变量。

  • TURSO_DB_AUTH_TOKEN(第1步中的turso表信息,点击“Generate Token”)
  • TURSO_DB_URL(例如 libsql://db-name.turso.io)
  • EMAIL_DOMAIN (域名,如 vmail.dev)

如果您不执行此步骤,可以在Cloudflare的 worker settings 中添加环境变量

然后运行命令:

cd apps/email-worker

# 需要node环境
pnpm run deploy

3.配置电子邮件路由规则

设置“Catch-all”动作为发送到emial worker。

3Vmail-可自己部署的开源临时邮箱服务--其他语言、在线工具-小T爱分享网

4.在 Vercel 或 fly.io 上部署 Remix 应用程序

确保在部署期间准备并填写以下环境变量(.env.example):

  • COOKIES_SECRET(cookie的加密密钥,一个随机字符串即可)
  • TURNSTILE_KEY(从Cloudflare获取,用于网站验证)
  • TURNSTILE_SECRET
  • TURSO_DB_RO_AUTH_TOKEN(从turso获取数据库凭据)
  • TURSO_DB_URL
  • EMAIL_DOMAIN (e.g. vmail.dev)

5.部署成功后在 cloudflare 添加域名解析到对应平台,就可以愉快的玩耍了

这里用 vercel 演示:

4Vmail-可自己部署的开源临时邮箱服务--其他语言、在线工具-小T爱分享网
5Vmail-可自己部署的开源临时邮箱服务--其他语言、在线工具-小T爱分享网

以上,完成!

© 版权声明
THE END
喜欢就支持一下吧
点赞3赞赏 分享
评论 共2条

请登录后发表评论