【发布时间】:2017-12-26 04:50:51
【问题描述】:
我有一个用 Java 编写的 Web 应用程序。它使用 Spring 和 Freemarker 从模板和 Spring JavaMailSender 发送电子邮件。
我发送的电子邮件内容中包含时间。问题是服务器将时间存储在 UTC+00 时区,而客户端可能有不同的时区,例如 UTC+03。例如,在电子邮件内容中有 20/07/2017 11:30 (UTC+00),但收件人预计 20/07/2017 14:30 (UTC+03)。
我的问题是:是否可以在客户端时区的电子邮件内容中显示时间,而在服务器端没有关于他的时区的信息?例如,是否有一些技巧可以告诉电子邮件客户端在他的时区解释给定时间?
【问题讨论】:
-
第一个答案可能会有所帮助...... stackoverflow.com/questions/9543580/… 不过,您必须将 javascript 嵌入到电子邮件中才能使其正常工作。
-
嵌入 javascript 不是一种选择,因为每个现代电子邮件客户端都会过滤掉 javascript 脚本。对于我的应用,用户将主要使用 Gmail。我试图在邮件中嵌入javascript脚本,而gmail通过忽略
<script></script>标签来阻止执行它们。还有其他想法吗?也许 Gmail 网络客户端将一些 html 标记或特定格式的字符串解释为时间/小时,并自动将客户端时区添加到它们? -
我不认为有,但如果您使用 PHP 并显示时间,那么您可以将时间添加为图像。时间必须是动态的,这意味着如果用户在几个小时后打开它,时间将会改变。
-
你能给我一些关于这个解决方案的文章/教程/代码示例吗?或链接到根据 url 参数返回生成的图像的服务。
标签: java spring email gmail freemarker