Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 电子邮件地址应如何选择加入?_Email - Fatal编程技术网

Email 电子邮件地址应如何选择加入?

Email 电子邮件地址应如何选择加入?,email,Email,情景: 用户给你一个电子邮件地址。在他们注册服务之前,他们需要验证电子邮件地址——你通过电子邮件发送一个URL,他们点击它,然后他们可以订阅服务 问题: URL看起来像什么?我想随机的guid就可以了 您是否使用相同的随机密钥来取消订阅请求 有什么好的double opt-in开源实现我应该看看吗?这很容易用随机字符串和GET请求实现。我可能不会用同样的方法来取消订阅,因为你知道大多数人都会丢失原来的电子邮件。用同样的方法——他们说他们想退订,而且它也这么做了,但同时也会发送一封电子邮件,说你已

情景:

用户给你一个电子邮件地址。在他们注册服务之前,他们需要验证电子邮件地址——你通过电子邮件发送一个URL,他们点击它,然后他们可以订阅服务

问题:

URL看起来像什么?我想随机的guid就可以了

您是否使用相同的随机密钥来取消订阅请求


有什么好的double opt-in开源实现我应该看看吗?

这很容易用随机字符串和GET请求实现。我可能不会用同样的方法来取消订阅,因为你知道大多数人都会丢失原来的电子邮件。用同样的方法——他们说他们想退订,而且它也这么做了,但同时也会发送一封电子邮件,说你已经退订了,以防发生意外


编辑:您甚至不需要确保唯一的字符串,因为您也可以传入电子邮件地址。

在此之前,我使用了一个随机GUID来验证电子邮件帐户,而且效果很好。除非您处理的是超安全、超敏感的数据,否则它就足够了。我认为没有理由不在取消订阅请求中使用相同的GUID-这样,您只需要为每个帐户存储一个GUID,可以作为对订阅者数据库的查找(或者以何种方式存储它们)。您可以将“取消订阅”链接添加到所有电子邮件的底部,使其成为一个简单的单击选项。

我不希望在URL中包含电子邮件地址-实际上,随机字符串将是电子邮件地址的代理。发送的每封电子邮件中都会包含不明嫌犯链接。在这种情况下,您只需确保您的字符串是唯一的。它还带来了另一个问题——您要确保唯一性多久?假设我订阅并单击链接。第二天,其他人收到相同的随机字符串(不太可能,但可能),但没有单击链接。我忘记了,我再次点击它。呸,他们被订阅了。或者更糟的是,如果你对不明嫌犯也有同样的想法。仍然有一个链接(可能在我的邮箱深处)现在可能会取消其他人的订阅。或者,在一个假设的最坏情况下,你只需要一个脚本在每次组合中点击你的取消订阅确认页面。(好吧,好吧,从统计学上讲,它们不会走得很远。我的观点是,两个只在一起有意义的标记通常比一个标记更好。)db字段上的一个简单的唯一约束可以防止这种情况发生。只有当电子邮件地址更改时,您才会更新唯一ID。因此GUID基本上只是电子邮件的哈希形式?GUID.NewGuid()。ToString(“N”)是一个很长时间的朋友。