mirror of
https://github.com/dreamhunter2333/cloudflare_temp_email.git
synced 2026-04-26 06:15:52 +03:00
[GH-ISSUE #164] [Feature] V0.28 需求改进建议 #52
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/cloudflare_temp_email#52
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @pdhapy on GitHub (Apr 26, 2024).
Original GitHub issue: https://github.com/dreamhunter2333/cloudflare_temp_email/issues/164
倒腾了几天类似的项目也看了不少,本项目基本在功能上基本上是完成度最高的产品了。建议可以优化的是:
邮箱名开通优化:
admin 后台强化:
catch-all过来的,因而建议是:普通会员删除账号后,其收到的邮件还是列在邮件列表里,但是需要标注为原收取邮件的账号,并且将账号标记为已删除(如:将其账号显示为带删除线样式即可)。易用性优化:
不是Bug的Bug
UI优化:
UI优化是大话题,继续用段时间再细细说。当前核心功能已经完全够用了,用来做个人的临时邮箱或是团队的临时邮箱很爽,细节部分无伤大雅,感谢大佬。
@dreamhunter2333 commented on GitHub (Apr 26, 2024):
感谢整理,我慢慢优化下,一起学习
@pdhapy commented on GitHub (Apr 27, 2024):
客气了哦。
那我就不客气了,接着补上:
16、同上述5,admin 后台,管理员应该可以查看所有邮件,当前
发件箱默认没有列出用户发出去的邮件,只能通过用户账号列表的账号操作来查看用户发出去的邮件,建议是:admin的发件箱默认列出所有用户发出去邮件。17、admin 后台
邮件的查看方式,交互可能真的需要变了,前面说的做成手风琴效果可能都不行,在邮件较多的情况下,还是只能先列表列出邮件,然后在一个二级页面中查看,如:左右分栏的方式。18、admin 后台
账号页,除了当前的,列出用户的账号名称、创建时间,建议统计下账号的邮箱收发数量,并列出来,即:增加账号的已收邮件数 和已发邮件数的统计结果显示。同时:当统计的数量大于 0 时,点击相应的邮件数量可以跳转到相应的收/发件箱中查看。19、团队使用中,还是需要一个邮件转发功能,即:用户邮箱账号可以绑定转发邮箱,进入该邮箱的邮件可以转发到实际的工作邮箱中。 如果是公开站点,为避免滥用,可以由管理员来设置特定的账号才有此权限,正好可以由上述
3 、说的,admin后台开设用户账号一起使用。20、可配置参数是否开放用户获取邮箱,如果不开放获取邮箱(相当于关闭注册),前台无
获取邮箱的按钮入口(通过接口也不行), 仅能由管理员在 admin 手动开设。@dreamhunter2333 commented on GitHub (Apr 27, 2024):
已添加

是用来翻页的,每页默认 20 封邮件

0.2.10版本已修改@Raejesh commented on GitHub (Apr 29, 2024):
我也来提个建议,算是文档的补充吧。关于发送邮件部分,是可以配置子域名发送邮件的。
比方说我想通过
subdomain.example.com这个域名发送邮件,我是按下面步骤操作的:电子邮件路由添加一个子域subdomain.example.com, 这可以让cf自动生成一些DNS记录spf记录复制粘贴文档的就好,即v=spf1 include:_spf.mx.cloudflare.net include:relay.mailchannels.net ~all_mailchannels.subdomain的内容复制原本_mailchannels的内容,subdomain可以写全但cf也会帮你自动缩写mailchannels._domainkey.subdomain的内容复制原本mailchannels._domainkey的内容_dmarc.subdomain的内容复制原本_dmarc的内容一句话概括下,就是你的
example.com的DNS有哪些TXT的解析记录,给要用来发邮件的子域名复制一份,名称里面就带上子域名。DOMAINS里,部署即可.(不知道cf有没有API可以修改DNS记录,这样就可以随时自定义子域名了🤪)
@dreamhunter2333 commented on GitHub (Apr 29, 2024):
赞,居然还能这样子
@pdhapy commented on GitHub (Apr 29, 2024):
必须有, Cloudflare API:
List DNS Records,Create DNS Record,Delete DNS Record ,Update DNS Record,Overwrite DNS Record
@pdhapy commented on GitHub (Apr 30, 2024):
这里也分享记录一下这几天排查的一个有点意思的苹果系统的
Lockdown锁定模式下的问题:问题表现
在一台系统开了
Lockdown锁定模式的苹果测试机上,打开前台一片空白,手动在Safri中关掉了Lockdown锁定模式问题也依旧,换用Chrome、FireFox、Brave等浏览器,问题也都一样,打开前台只有空白。环境、复现步骤
IOS 17.x+(IOS 16也一样), 打开系统的
Lockdown锁定模式:1、所有手机端常见浏览器,打开前台。
2、在Safari中关掉当前站点的锁定模式后再刷新站点前台。
预期行为
站点能正常访问,或者是在Safari中关掉当前站点的锁定模式后能正常访问。
实际问题表现
只要是系统开启了
Lockdown锁定模式,即便在Safari中临时关掉锁定模式后也无法正常访问。偶然把系统的
Lockdown关闭后,可以正常打开了。严重程度/影响范围
严重,影响范围较小。(虽未有确切数据,但普遍认为苹果用户开启
Lockdown的不足10%)当前只测试了iPhone,iPad、Mac未测试,预估是一样的问题。
问题排查与初步结论
在实际使用中,绝大多数web站点都能在锁定模式中正常浏览,少数浏览不正常的,在Safari中关掉
Lockdown后也可以正常浏览。但这次不同,基本上不是(单个)浏览器拦截了,而是所有浏览器都不行,结合关闭Lockdown后可以正常访问,因而考虑是从系统层面对站点进行了拦截或禁用。而关于
Lockdown模式,苹果公开的资料并不多。在实际中,会导致在Lockdown中出现问题的常见原因有:一般这些关掉
Safari中的Lockdown后都是可以正常浏览的,但像这次这样彻底屏蔽的还是第一次遇到。在翻了N多文档排查了两天后,现基本上考虑为使用了
WebAssembly的原因。因为苹果系统在开启
Lockdown后,基于安全原因会从系统层面禁用掉对WebAssembly的支持,同时封禁或限制掉JIT、WebGL、WebRTC等的应用,而这些貌似项目中都没用到,那也就只有WebAssembly了,也就是 Mail Parser wasm。至于安全跨域的问题,不确定是否有,但在CF的HSTS Proxy下,有也不严重。
后续
这个问题基本上无解,当然也没有最终确认,要确认至少需要换一个邮件解析组件后再测试。
当然,如果在兼容性和性能上选择的话,我会选择兼容,也会有人也会选择性能。 鱼和熊掌选什么的问题。
只是不知道能否给前台提供个常规的邮件解析组件做为备选,可以在CLI编译部署时来配置选择(默认也可以是现在的Mail Parser)。
(问题待大佬@dreamhunter2333复现核实)
@dreamhunter2333 commented on GitHub (Apr 30, 2024):
看起来这个锁定模式禁用了 wasm,其实代码中还有wasm之前解析的 js 库,只是这个wasm 加载失败的情况需要做下处理
chrome 使用
--js-flags=--noexpose_wasm参数启动即可复现@pdhapy commented on GitHub (Apr 30, 2024):
确实,确定就是这个问题了。
@dreamhunter2333 commented on GitHub (May 2, 2024):
16,17,18,20 最新版 v0.3.1已添加
@dreamhunter2333 commented on GitHub (May 2, 2024):
最新版已修复,wasm 失败后会使用 js 库解析
@pdhapy commented on GitHub (May 2, 2024):
大佬这更新效率简直让人惊叹!赞!
现就期待账号绑定多个邮箱别名,和转发功能了(如果邮箱账号绑定有第三方收件箱的,进邮件了本地一份,转发一份)了。
@pdhapy commented on GitHub (May 4, 2024):
建议:
全站类似于这里的
密码,叫密钥或登录密钥可能更合适,用原意Token令牌的话,非行业相关的看着很迷糊,如果叫密码的话,习惯上还是手动设置的短的字符串叫密码,这个挺长的,用密钥就正合适了。正好也可以把用户名/密码留出来,给注册用(如果这个功能做的话,其实感觉做不做都可以,现在这样我觉得挺好的,只是个人习惯和需求问题)@dreamhunter2333 commented on GitHub (May 9, 2024):
TODO:
catch-all过来的,因而建议是:普通会员删除账号后,其收到的邮件还是列在邮件列表里,但是需要标注为原收取邮件的账号,并且将账号标记为已删除(如:将其账号显示为带删除线样式即可)。3 、说的,admin后台开设用户账号一起使用。REF
已增加
目前有限制 0-100 字符
github.com/dreamhunter2333/cloudflare_temp_email@fc6b0246b1/worker/src/common.js (L9-L14)已增加
暂未实现
暂未实现批量功能
暂未实现, 暂时未做软删除,需要修改数据库 schema,会增加数据库占用
已增加开关
已增加
已增加
已修改
为翻页按钮
已修改
已增加选项,可隐藏侧边距
已增加
已增加选项,可选择三种显示方式
已修改
邮件展示已全局统一
已增加
暂未实现,转发对发件的消耗很大,暂时没想到怎么实现,如果工作邮箱能绑定到 cf 的话,可以调用使用 cf 的邮件转发
已增加
@pdhapy commented on GitHub (May 9, 2024):
赞! 👍
用户名限制0-100可能会有问题哦。
按修订的 RFC 3696规范 ,email 地址的长度标准为:
{用户名最长64个字符} + @ + {域名最长255个字符} = 总共最长320个字符
其中用户名最长只允许 64个字符。
在实际使用中,建议使用gmail的规则,用户名为6~30个字符。 最长的30可以写死,最短的,默认6位,建议是可配置的,如:可配置为最短3位,这样就完全可以适用于个人、内部使用对外开放注册的各个场景了。
供参考。
--
现在是这么用的,但是配置很麻烦,而且需要验证转发邮箱有效性,最理想的还是这些功能通过邮件worker来实现,更长远来说,这个项目的邮件worker很有成为全功能的Cloudflare email worker的潜力,甚至于可以替代绝大部份市面上的免费域名邮箱。
而转发功能,对性能的消耗具体我也没有测试过,但是,Cloudflare是有自带有 email worker 的转发功能的,
这应该也是email worker的初衷,邮件路由Catch-All 到 worker 后,worker 全面接管该域名的邮件服务功能,包括转发规则(当然后台配置的规则优先),只是不确定
message.forward("inbox@corp")是否能直接转发,参考:
Routing an email to more than one address from the same user
Email Worker to Forward to Multiple Emails
官方社区的原始需求: Feature: Email Routing - Multiple Catch-all Addresses 和待核实的天坑(转发的目标邮件地址需要先验证)。
@pdhapy commented on GitHub (May 9, 2024):
邮件软删除其实不需要的,毕竟还是定位于轻量级应用,且更偏向于临时性使用,所以对数据的管理要求其实没有这么高,之前是因为删除了用户没有删除用户的邮件,所以才提了这个需求对已删用户的未删邮件进行特殊的标记,看到有人把这个报告为BUG来处理后,在删除了用户的同时也删除了对应的邮件后,那么这个需求也就不存在了。感谢。
@dreamhunter2333 commented on GitHub (Jun 1, 2024):
已增加普通用户的批量删除/下载
@pdhapy commented on GitHub (Jun 2, 2024):
赞。
关 issue 了,感谢大佬。