【问题标题】:How do I record the email address of a user that clicks a link in an email?如何记录单击电子邮件中链接的用户的电子邮件地址?
【发布时间】:2015-04-20 14:29:21
【问题描述】:

所以我向我的客户发送了一封电子邮件,询问他们对我的服务的满意度。我想将他们的答案记录在数据库中进行分析。 有两个按钮:竖起大拇指,竖起大拇指。

这两个按钮将用户带到 Web 应用程序中的不同 Web 表单。 两个网络表单看起来相同(他们只是说谢谢)。但是在两种不同网络表单的页面加载中,如果用户访问了点赞链接或点赞链接,它将插入到我的数据库中。

我还希望能够记录哪个电子邮件地址点击了我数据库中的链接。 有人知道怎么做吗?



这是我要插入的表:

CREATE TABLE emails(
  ID INT IDENTITY PRIMARY KEY,
  Cust nvarchar(max) not null,
  Rating nvarchar(max) not null,
  Points int not null,
  UpdateDate Datetime not null,
  UpdateUser nvarchar(max)  --This is the field I want to record the email address in!
  );

【问题讨论】:

  • 您必须向网络表单链接添加一个 GET 参数,其中包含预期目的地的电子邮件地址。是的,这提供了无法安全识别用户的继承安全风险,因此您还可以生成秘密令牌以包含在请求中。但是,由于电子邮件的工作原理,它可能总是被欺骗。
  • 大多数垃圾邮件服务的创建者都知道如何做到这一点。随意查找和联系。我确定搜索联系人(“有人知道怎么做吗?”)在 SO 上是题外话。
  • 我不确定为什么人们对这个问题投反对票,所以如果你想投反对票,请给她一个解释。

标签: c# asp.net visual-studio-2012 web-applications webforms


【解决方案1】:

您必须向网络表单链接添加一个 GET 参数,其中包含预期目的地的电子邮件地址。是的,这提供了无法安全识别用户的继承安全风险,因此您还可以生成秘密令牌以包含在请求中。但是,由于电子邮件的工作方式,它可能总是被欺骗。

http://contoso.com/Email/Subscription/?action=thumbsdown&email=barbara@contoso.com&token=7A8E1A6B-13F9-4292-BFB3-9D199E7FB96D

http://contoso.com/Email/Subscription/?action=thumbsup&email=barbara@contoso.com&token=7A8E1A6B-13F9-4292-BFB3-9D199E7FB96D

或者,如果您想帮助提供基本安全性,请将其设为 HTTPS 请求。

https://contoso.com/Email/Subscription/?action=thumbsdown&email=barbara@contoso.com&token=7A8E1A6B-13F9-4292-BFB3-9D199E7FB96D

https://contoso.com/Email/Subscription/?action=thumbsup&email=barbara@contoso.com&token=7A8E1A6B-13F9-4292-BFB3-9D199E7FB96D

【讨论】:

    猜你喜欢
    • 2011-05-20
    • 2016-03-22
    • 2013-11-25
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多