如何使用JavaMail / Servlet机制创建ConfirmationURL?

时间:2009-08-19 01:02:14

标签: tomcat servlets javamail confirmation-email

我正在编写服务器端Java程序,该程序将向具有确认URL(位于电子邮件正文中)的用户发送电子邮件。

已经使用JavaMail API创建了servlet(可以发送电子邮件)...我想知道如何设计/实现实际的唯一URL(在最终用户点击时,它会启动浏览器并指出“确认。”在网页中)?确认必须与最终用户的电子邮件地址相匹配(用于验证目的)。我是否需要生成与数据库中创建的用户匹配的令牌,或者我是否会使用附加到URL的HttpSessions或Cookie?

如果有人能指出我正确的方向,我将不胜感激......

快乐编程,

迈克

1 个答案:

答案 0 :(得分:2)

如果您能为此购买数据库,那么最好的方法应该是这样的,

  1. 在发送确认电子邮件之前,请创建一个记录,其中会话ID为密钥。您将电子邮件地址,过期时间和所有其他信息存储在数据库中。在确认链接中对会话ID进行编码。您还应该包含有关如何在电子邮件禁止热链接时手动输入确认代码的说明。应使用短会话ID进行手动输入。
  2. 当用户点击链接或手动输入会话ID时,请转到数据库以检索会话。如果电子邮件匹配,未过期,则确认用户。
  3. 在其他一些应用程序中,我们不希望仅为此创建数据库,因此我们创建了电子邮件地址的HMAC(秘密哈希)并将其用作确认密钥。在这种情况下,需要在链接中提供电子邮件。

    HttpSession和Cookie不起作用,因为用户在几天后点击确认链接时可能会消失。