twikoojs / twikoo

💬 一个简洁、安全、免费的静态网站评论系统 | A simple, safe, free comment system.
http://twikoo.js.org
MIT License
1.59k stars 307 forks source link

功能建议:是否可以在邮件发送超时后 有个重试机制? #268

Open ghost opened 3 years ago

ghost commented 3 years ago

功能建议:是否可以在邮件发送超时后 有个重试机制?

当 Vercel 服务在 10秒超时后,导致邮件发送失败,这种情况下是否可以重试发送邮件?保证用户都能收到邮件通知。

imaegoo commented 3 years ago

没用的,重试解决不了10秒发不出去的问题

ghost commented 3 years ago

我想问一下: Vercel 服务的10秒超时,指的是: Vercel服务自身发邮件时调用邮件服务商的SMTP服务超时?还是 前端TwikooJS调用 Vercel服务的过程超时?

imaegoo commented 3 years ago

Vercel服务自身发邮件时调用邮件服务商的SMTP服务超时

ghost commented 3 years ago

为啥重试发邮件的逻辑解决不了问题呢?(还是由于Vercel存在无法解决的其他问题)

Vercel服务自身所处的网络环境估计不会太差,在它之上调用outlook、gmail之类的SMTP服务商应该不会每次都超时吧。

imaegoo commented 3 years ago

为啥重试发邮件的逻辑解决不了问题呢?(还是由于Vercel存在无法解决的其他问题)

Vercel服务自身所处的网络环境估计不会太差,在它之上调用outlook、gmail之类的SMTP服务商应该不会每次都超时吧。

超时 ≠ 失败。

即使超时,邮件也可能已经发出了,函数不知道什么时候该重试,什么时候不该重试。

另外,重试需要定时触发函数,Vercel现在没提供这样的定时触发能力。(可以通过Github Actions定时触发,但配置起来太复杂了)

ghost commented 3 years ago

好的。 主要我不懂JS函数,以及Vercel服务的运行原理。

另外,第三方发邮件服务 适用吗?

imaegoo commented 3 years ago

另外,第三方发邮件服务 适用吗?

哪个第三方提供这样的服务呢?

ghost commented 3 years ago

以前看到有这样的三方库,我找找看。

jerryc127 commented 2 years ago

我用 office365 一直都是 Task timed out after 10.00 seconds 就没成功过 我还以为是 vercel 的问题

然后今天部署了 waline 同样是 vercel + mongodb office365 能收到评论的推送邮件

所以 这是谁的问题 @imaegoo

imaegoo commented 2 years ago

@jerryc127 因为现在是先走垃圾评论检测的逻辑,根据检测结果再发邮件,二者不是同步进行的,所以垃圾评论检测或邮件服务器响应太慢,都可能导致邮件发不出去。

暂时没想到什么好的解决方案