使用 Velocity 模板生成的电子邮件中的绝对 URL
Absolute URL in email generated using Velocity template
我正在使用 Spring Web 应用程序,它需要使用 Velocity 模板生成电子邮件。我在Spring配置中有如下配置:
<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="resourceLoaderPath" value="/WEB-INF/velocity/,classpath:/velocity" />
</bean>
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.mycompany" />
<property name="port" value="25" />
<property name="javaMailProperties">
<props>
<prop key="mail.mime.charset">UTF-8</prop>
<prop key="mail.transport.protocol">smtp</prop>
</props>
</property>
</bean>
<bean id="mailer" class="com.mycompany.utils.EmailManager">
<constructor-arg name="mailSender" ref="mailSender" />
<constructor-arg name="velocityEngine" ref="velocityEngine" />
</bean>
此设置运行良好,所有上下文数据都已正确解析以生成电子邮件。然而,一个变量 $link.contextURL
没有解析,我需要这个,因为电子邮件包含返回到 Web 应用程序的绝对 URL。我本可以对 URL 进行硬编码,但在 DEV/UAT/PROD 环境中这显然不是无缝的。我可以在提供给模板的上下文数据中包含 URL,但我想利用流行的 LinkTool Velocity 扩展,它允许我利用 $link.contextURL
多变的。有什么办法可以促进这一点吗?
评估您的邮件模板时速度没有 http 请求上下文,没有它就无法计算完整的 URL。恐怕您必须将 URL 包含到上下文数据中或找到一种方法来提供 http 请求上下文以评估邮件模板。
我正在使用 Spring Web 应用程序,它需要使用 Velocity 模板生成电子邮件。我在Spring配置中有如下配置:
<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="resourceLoaderPath" value="/WEB-INF/velocity/,classpath:/velocity" />
</bean>
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.mycompany" />
<property name="port" value="25" />
<property name="javaMailProperties">
<props>
<prop key="mail.mime.charset">UTF-8</prop>
<prop key="mail.transport.protocol">smtp</prop>
</props>
</property>
</bean>
<bean id="mailer" class="com.mycompany.utils.EmailManager">
<constructor-arg name="mailSender" ref="mailSender" />
<constructor-arg name="velocityEngine" ref="velocityEngine" />
</bean>
此设置运行良好,所有上下文数据都已正确解析以生成电子邮件。然而,一个变量 $link.contextURL
没有解析,我需要这个,因为电子邮件包含返回到 Web 应用程序的绝对 URL。我本可以对 URL 进行硬编码,但在 DEV/UAT/PROD 环境中这显然不是无缝的。我可以在提供给模板的上下文数据中包含 URL,但我想利用流行的 LinkTool Velocity 扩展,它允许我利用 $link.contextURL
多变的。有什么办法可以促进这一点吗?
评估您的邮件模板时速度没有 http 请求上下文,没有它就无法计算完整的 URL。恐怕您必须将 URL 包含到上下文数据中或找到一种方法来提供 http 请求上下文以评估邮件模板。