首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
数据库
›
SQL-Server
›
构建一个rust生产应用读书条记7-确认邮件1 ...
返回列表
发新帖
构建一个rust生产应用读书条记7-确认邮件1
[复制链接]
发表于 2025-11-23 23:56:45
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
酷爱的读者们,在前一章中,我们先容了对新订阅者的电子邮件地点的验证——它们必须符合电子邮件格式。 现在我们拥有的电子邮件固然在语法上是有效的,但我们仍旧不确定这些邮箱是否真的存在:有人现实利用这些电子邮件地点吗?它们可以吸取到邮件吗? 我们无法确定,而唯一的方法就是发送一封真正简直认邮件。
1. 订阅者同意
此时你大概会有疑虑——在这个阶段我们必要知道这一点吗?我们不能比及下一期通讯
发布
时再看他们是否能收到我们的邮件吗? 如果彻底验证是唯一的顾虑,我同意我们应该比及下一次发行而不是增长POST /subscriptions端点的复杂性。 然而,我们尚有另一个不能推迟的关注点:订阅者的同意。
电子邮件地点不像暗码——如果你上网时间充足长,你的电子邮件很大概并不难获取。 某些范例的电子邮件地点(比方专业电子邮件)以致是公开的。 这为滥用打开了大概性。 恶意用户大概会开始将一个电子邮件地点订阅到互联网上的各种通讯列表,导致受害者的收件箱被垃圾邮件淹没。 不道德的通讯全部者则大概开始从网络上抓取电子邮件地点并将其添加到自己的通讯列表中。 这就是为什么仅通过POST /subscriptions哀求不敷以阐明“这个人想要吸取我的通讯内容!” 比方,如果你处理处罚的是欧盟公民,法律要求得到用户的明白同意。 这也是为什么发送确认邮件已经成为常见做法的缘故起因:在填写通讯HTML表单后,你会收到一封邮件,要求确认你确实想订阅该通讯。 这对我们来说非常好——我们可以掩护用户免受滥用,而且可以在实行发送通讯之前确认提供的电子邮件地点确实存在。
2. 用户确认流程
让我们从用户的角度来看看确认流程。 他们会收到一封包罗确认链接的邮件。 一旦点击链接,就会发生一些变乱,然后他们会被重定向到一个乐成页面(“你现在是我们通讯的订阅者!耶!”)。从当时起,他们将在收件箱中收到全部的通讯期号。 配景是怎样工作的呢? 我们将只管保持简单——我们的
版本
不会在确认时实行重定向,只会给欣赏器返回一个200 OK。 每当用户想要订阅我们的通讯时,他们会发起一个POST /subscriptions哀求。 我们的哀求处理处罚器将会:
将他们的详细信息添加到
数据库
中的subscriptions表,状态设置为pending_confirmation;
天生一个(唯一的)订阅令牌(subscription_token);
在subscription_tokens表中
存储
subscription_token及其对应的订阅者ID;
发送一封包罗布局为https://<我们的
API
域名>/subscriptions/confirm?token=<subscription_token>链接的邮件给新订阅者;
返回200 OK。
一旦他们点击链接,欣赏器标签页会打开并发出一个到我们的GET /subscriptions/confirm端点的GET哀求。我们的哀求处理处罚器将会:
从查询参数中检索subscription_token;
从subscription_tokens表中检索与subscription_token关联的订阅者ID;
更新subscriptions表中的订阅者状态从pending_confirmation到active;
返回200 OK。
这里尚有一些其他大概的操持(比方利用JWT取代唯一令牌),以及我们必要处理处罚的一些边沿环境(比方,如果他们点击链接两次会发生什么?如果他们实行重复订阅又会怎样?)——随着我们实行进度的推进,我们会在最符合的时间讨论这些标题。
3. 实行战略
这里有大量工作要做,以是我们将其分为三个概念性的部分:
编写一个模块来发送邮件;
顺应现有POST /subscriptions哀求处理处罚器的逻辑以匹配新的规范;
从零编写一个GET /subscriptions/confirm哀求处理处罚器。
让我们开始吧!
EmailClient,我们的邮件发送组件
怎样发送电子邮件
要真正发送一封电子邮件,你必要相识SMTP——简单邮件传输协议。SMTP对于电子邮件的作用类似于HTTP对于网页的作用:它是一个应用层协议,确保差别的电子邮件
服务器
和客户端实现可以或许相互明白并互换消息。然而,我们不会构建自己的私有邮件
服务器
,由于这必要太多的时间且不会有太多的收益。我们将利用第三方服务。当代的邮件递送服务渴望什么?我们必要通过SMTP与它们通讯吗?
现实上,不愿定必要。SMTP是一种专业化的协议,除非你之前有过处理处罚电子邮件的履历,否则直接利用它是不太大概的。学习新协议必要时间,而且在过程中不免会犯错误。这就是为什么大多数提供商会袒露两种接口:SMTP接口和REST
API
。
如果你认识电子
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
返回列表
去皮卡多
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表