【问题标题】:Spring MVC - Insert link in emailSpring MVC - 在电子邮件中插入链接
【发布时间】:2013-06-22 12:57:23
【问题描述】:

请原谅新手的问题,但我正在使用 Spring MVC 构建一个 Web 应用程序。我已经建立了一个注册功能,在成功注册后向用户发送电子邮件。该电子邮件包含一个用于确认用户电子邮件地址的链接。这一切正常,但电子邮件中链接的 URL 被硬编码为:

"http://localhost:8080/webApp/confirmEmail"

我担心的是,当我最终部署我的应用程序时,电子邮件链接仍将指向 localhost

我已经尝试过 getContextPath() 但这只会返回“/webApp”,所以用处不大,因为我需要在电子邮件中插入完整的 URL。解决这个问题的最佳方法是什么?

注意 - 我没有使用模板工具来构建我在控制器中执行此操作的电子邮件(例如

String body = "<html><body>...</body></html>"

【问题讨论】:

    标签: email url spring-mvc path


    【解决方案1】:

    您可以使用getRequestURL()HttpServletRequest 获取网址。获得 URL 后,获取 serverURL(协议、dns 和端口号,如果有)并在构建电子邮件内容时使用它。

    【讨论】:

    • 谢谢尼兰詹。我已经玩过 getRequestURL()。这将返回localhost:8080/webApp/registerSubmit.html,我正在考虑拆分此字符串以获取localhost:8080/webApp,然后附加“confirmEmail”。这是替代方案吗?如果/当我更改控制器方法的名称时,我猜这并不完全安全。关于 serverURL - 你能提供更多信息吗?我不明白 getRequestURL() 和 serverURL 之间的联系。
    • @SimonTilbury getRequestURL() 返回最终用户用来访问您当前请求的资源(页面、Servlet 等)的 URL。这样您就不必在构建confirmEmail URL 时对hostname 进行硬编码。顺便说一句,您可以在相应方法的@RequestMapping中提供路径/confirmEmail
    • 非常感谢。现在开始工作了。看起来有点像黑客,但它工作了
    猜你喜欢
    • 1970-01-01
    • 2016-10-09
    • 2017-10-21
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-09-17
    • 2013-04-17
    相关资源
    最近更新 更多