创建用户和发送邮件怎么保证原子性?

注册的时候,教程中是先创建用户,然后发送邮件。
这里就会有四种情况:
1.创建成功->发送失败
2.创建成功->发送成功
3.创建失败->发送成功
4.创建失败->发送失败
其中2,4不用考虑。1中就会造成该用户永远无法激活,3这种情况不可能发生,发送邮件是依赖于$user。
针对1这种情况优化:
1.先根据email和activated查询是否存在
2.存在就直接发送邮件
3.不存在就创建然后发送邮件
这样就可以保证邮件发送失败的情况下还可以继续激活

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 8
你看我吊吗啊

发送失败的时候用户可以选择重新发送,中断你所谓的死循环的。。。

5年前 评论

@JeffLi 如果我现在点注册,但是没有激活。过了一段时间我再来,不是发现我现在既不能登陆,也不能注册了?

5年前 评论

这个让我想起以前一个网站,登录时,提示要邮件激活,打开邮件点击激活链接,提示要登录,,,

5年前 评论
你看我吊吗啊

@permission
@158abcd1510 嗯,这样确实是一个错误,其实没必要非得登录 才可以重发激活链接的。因为本身知道用户名的人就很少,就算非本人操作了,链接发到邮箱里,猜到邮箱的人 很少 ,猜到密码的更少,这玩意没有绝对的谨慎,不行就加上手机短信验证。

5年前 评论

@permission 有一种做法是重新发送激活链接。

5年前 评论

为什么页面显示发送成功,但却没有接收到邮件啊

![Uploading file...]()

5年前 评论

如果能获取到邮件的发送结果就好了

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!