有什么方法可以获取在 outlook 上单击 link 的人的电子邮件地址

Is there any way to get the email address of the one who clicked the link on outlook

我开发了一个应用程序,其中的所有组织流程都将在线处理。 有一些流程是运行手动的,耗费了时间,现在要在线审批或不审批。

假设有一份文件将由 HR ---> ADMIN ---> CEO.

批准

现在,当有人发起请求申请时,会向 HR 经理发送两个 link 批准或不批准,HR 可以通过单击这些 link 来执行他们的操作。

如果人力资源经理将此 links 发送给其他人会发生什么情况,所以,该人也可以批准或不批准该流程,尽管他不是合适的人选。

我可以通过对这两个 link 实施身份验证过程来阻止它,而不是每个权限都必须登录应用程序。我不想要。

有什么方法可以让我选择点击那个 link 的人的电子邮件 ID,以便我可以在后端比较电子邮件地址?

据我所知,您有 3 种可能的方法:


1:实施身份验证过程

我认为这是最好的方法,因为您可以确定应该批准流程的人就是实际批准流程的人。

这种方法的缺点是用户必须登录,但您可以采用他们很少需要登录的方式来实现这一点,例如,他们可以保持登录状态一个月或更长时间。


2:使用带有一次性令牌的link

这基本上就是你提到的方法和你提到的缺点,即有人可以转发电子邮件,然后其他人可以批准它。

在您的情况下,唯一可行的方法是自上而下强制执行,因为如果将此类电子邮件发送给其他人,管理层可能会受到处罚。但这很少是一个好策略,而且很难执行。


3:通过回复电子邮件批准和不批准

我认为这种方法可能最接近您正在寻找的方法,但作为免责声明,我以前没有测试过类似的方法。

您可以设置 links,点击它们将打开一个新的邮件屏幕,其中填充了某些内容,例如,您可以填充主题和发送邮件的地址。

示例 link:<a href="mailto:approvedisapprove@system.com?Subject=Approve%20%5BIDNumberHere%5D&body=UniqueID%3D123456" target="_top">Approve</a>

然后在您正在创建的系统中,您必须监控该邮箱,然后解析收到的任何电子邮件,使用发件人地址来验证是否正确的人发送了电子邮件。

这种方法的一个重要注意事项是电子邮件中的发件人地址很容易被欺骗,所以如果你想采用这种方法,我建议至少在电子邮件中添加某种随机标记将在后端进行验证。

即使有了独特的令牌,也存在另一种攻击媒介,尽管这需要一些工作。假设系统向 Alice 发送一封邮件,因为她需要批准或不批准某事,她将邮件转发给 Bob。 Bob 不能点击 link 并按原样发送电子邮件,因为系统会看到它来自他的电子邮件地址,但 Bob 可以做的是点击 link 查看主题应该是,然后使用欺骗站点欺骗爱丽丝的电子邮件。然后系统会按顺序查看所有内容,因为它看起来像是来自 Alice 的电子邮件。

欺骗站点示例:https://emkei.cz/