电子邮件正文中的批准链接

时间:2014-05-22 06:45:12

标签: spring web-services spring-mvc html-email

需要帮助实施基于电子邮件的审批系统。例如:管理员通过电子邮件正文中的批准链接获取自动触发的邮件以供其批准,当管理员点击该链接时,它应验证管理员然后批准它。我尝试在互联网上搜索,但没有找到相关的资源。

请你帮我解决你的想法,建议或我应该如何进行,或任何插件或罐子可用???这对我很有帮助......感谢你......

编辑:感谢您的回复。我们使用spring框架(MVC)构建了一个java web应用程序,员工可以在其中申请必须由他/她的经理批准的叶子。如果员工申请休假,则会触发一封邮件,以便他/她的经理批准休假详情。查看邮件后,管理员登录到应用程序以批准或拒绝离开。因此,请您帮助我如何在邮件中提供直接链接以批准或拒绝离开。

2 个答案:

答案 0 :(得分:3)

For one of our applications我们有相同的要求 - 员工可以提交休假请求,并会通过邮件通知主管。我们写了一篇关于我们这样做的确切方式的文章 - 可用here

简而言之,我们正在使用Spring Integration和GMail。每个新的休假请求都会向所有主管发送电子邮件。主管可以使用批准拒绝进行回复。我们只接受来自我们域名的电子邮件地址,但由于这些地址可以伪造,我们引入了共享密钥 - 添加到邮件主题的UUID,然后与假期请求的ID相关联。

一旦收到电子邮件,我们就会运行业务逻辑来确定请求是被批准还是被拒绝。

答案 1 :(得分:0)

正如我在评论中所述,我使用Velocity来模拟我的电子邮件。你不必使用它,但它使我的工作更容易。你应该能够阅读它。

Java本身可以使用JavaMail在其Java EE框架中send emails,或者您可以使用Spring's wrappers。您将需要访问某些类型的邮件服务器,并强烈建议您专门为此过程设置一个电子邮箱。我实际上在测试期间使用了我的gmail帐户,但我不建议这样做是为了长期解决方案。我假设您的公司将在您可以使用的地方设置电子邮件服务器。

流程如下:

  1. 员工填写请求
  2. 系统会向员工的经理发送一封电子邮件,其中包含批准链接
  3. 经理点击链接,转到审批页面
  4. 经理批准/拒绝请求
  5. 下一个问题是如何构建URL。我建议使用类似UUID之类的东西,或者使用请求ID,如果这样可以更容易。您可以从任何种子String或字节集生成UUID。我喜欢UUID,因为它会观察正在发送的数据。

    无论如何,URL基本上会指向一个允许用户批准该请求的Spring表单。因此,考虑到您需要什么,我希望有一些DB记录将传入请求中的信息与填写的请求时间相关联。读入记录,加载页面并显示它。很简单。

    下一个问题是将其锁定,以便只有经过授权的人才能批准。再次,在这里做出一个巨大的假设,但我猜你在使用Spring Security?如果是,您应该能够为此批准表单的Controller处理程序添加一个条件,该表单要求用户进行身份验证(read here)并将java.security.Principal添加到处理程序方法参数({{ 3}})。使用Principal对象,您应该能够将其与DB中与请求记录关联的批准者列表进行比较。然后我会让系统生成批准/拒绝电子邮件,编码给所有相关方。

    让我重申,这不是唯一的解决方案,只有一种可能的解决方案。这就是为什么我觉得这对StackOverflow来说不是一个好问题,因为它提出了一个非常广泛的问题,它没有一个正确的答案。