Sql server 如何通过存储过程在电子邮件中生成激活链接

Sql server 如何通过存储过程在电子邮件中生成激活链接,sql-server,tsql,Sql Server,Tsql,我想要一种验证电子邮件的方法,以免阻塞我们的队列。目标是当用户完成帐户设置后,需要验证电子邮件。我的想法是创建一个存储过程,该过程将向用户输入的电子邮件发送一封带有链接或其他内容的电子邮件,以验证电子邮件是否已发送和打开 我所困惑的是如何生成这个链接 在我的一个存储用户的表中,我添加了一个名为“isActive”的列,其类型为BIT并设置为0。目标是使电子邮件具有一个链接,一旦单击该链接,将“isActive”列从0翻转到1,这将验证电子邮件是否正确到达 我希望当用户输入完信息后,存储过程将发送

我想要一种验证电子邮件的方法,以免阻塞我们的队列。目标是当用户完成帐户设置后,需要验证电子邮件。我的想法是创建一个存储过程,该过程将向用户输入的电子邮件发送一封带有链接或其他内容的电子邮件,以验证电子邮件是否已发送和打开

我所困惑的是如何生成这个链接

在我的一个存储用户的表中,我添加了一个名为“isActive”的列,其类型为BIT并设置为0。目标是使电子邮件具有一个链接,一旦单击该链接,将“isActive”列从0翻转到1,这将验证电子邮件是否正确到达


我希望当用户输入完信息后,存储过程将发送一封电子邮件,通过单击激活链接来验证电子邮件是否正确。

根据上面的注释说明,我认为您可能希望将一列设置为GUID(或添加新列)。这些链接将提供有关如何以及为什么这样做的一些详细信息,但简短的版本是,您可以保证连接密钥是不可猜测的,并且始终是唯一的。通过UNIQUEIDENTIFIER default NEWID()将列设置为具有默认GUID值,它将为可以在代码的其他部分中使用的每一新行创建一个新ID


根据上面的注释说明,我认为您应该将一列设置为GUID(或添加一个新列)。这些链接将提供有关如何以及为什么这样做的一些详细信息,但简短的版本是,您可以保证连接密钥是不可猜测的,并且始终是唯一的。通过UNIQUEIDENTIFIER default NEWID()将列设置为具有默认GUID值,它将为可以在代码的其他部分中使用的每一新行创建一个新ID


问题是关于如何为此列行生成唯一标识符以标识此验证请求是否与一个帐户相关,还是您需要知道如何从头到尾执行电子邮件验证的整个过程?很可能您不会让服务器本身发送电子邮件或生成链接,但您可能会让服务器生成进入所述链接/电子邮件的密钥或详细信息。编辑:我的意思是,你可以让服务器生成整个链接,但这似乎是一个奇怪的地方把逻辑。宾果,我猜我在我的解释太模糊了。生成一个唯一的标识符让我抓狂@CodyMcPheronAside:您应该将过期日期/时间与唯一链接相关联,以使其仅在合理期限内有效,例如30分钟。保持
DateTime
字段
ActivatedOn
而不是
也可能有帮助。如果为
null
,则该帐户尚未激活。有关如何为此列行生成唯一标识符以标识此验证请求的问题是否特别涉及一个帐户,或者您需要知道如何从头到尾执行电子邮件验证的整个过程?很可能您不会让服务器本身发送电子邮件或生成链接,但您可能会让服务器生成进入所述链接/电子邮件的密钥或详细信息。编辑:我的意思是,你可以让服务器生成整个链接,但这似乎是一个奇怪的地方把逻辑。宾果,我猜我在我的解释太模糊了。生成一个唯一的标识符让我抓狂@CodyMcPheronAside:您应该将过期日期/时间与唯一链接相关联,以使其仅在合理期限内有效,例如30分钟。保持
DateTime
字段
ActivatedOn
而不是
也可能有帮助。如果为
null
,则该帐户尚未激活。