首页 > 解决方案 > 如何在 Keycloak 中访问电子邮件资源路径?

问题描述

我正在为密码重置自定义电子邮件模板。我希望从电子邮件 资源目录(即)\themes\\email\resources\img\marketing.jpg访问徽标

这可以通过${url.resourcesPath}登录模块

有人请指出我如何访问 password-reset.ftl 中的电子邮件资源路径

版本keycloak-4.0.0.Final

标签: themeskeycloak

解决方案


我自己遇到了这个问题,经过一番搜索,我发现了这个电子邮件线程

嗨社区,

我正在寻找一种将图像添加到自定义 keycloak 电子邮件主题的方法。我们的公司模板 HTML 使用作为附件发送的图像。因此,我想将所需的图像附加到电子邮件中。如果这是不可能的,将图像添加到 HTML 模板的正确方法是什么?

不幸的是,当前文档没有说明任何内容: http ://www.keycloak.org/docs/3.3/server_development/topics/themes.html

问候乔纳森

 

我认为您今天无法立即执行此操作,但您应该能够创建一个自定义电子邮件发件人提供程序来执行此操作。查看文档以获取有关创建自定义提供程序的详细信息(以及示例的快速入门)。然后查看我们的仓库中的 EmailSenderProvider 和实现。

 

嗨,如果您的目标是在邮件中显示某种徽标或某些图像,您可以使用它作为嵌入图像包含它 <img src="data:image/png;base64,.... "/> 并不完美,因为某些电子邮件客户端(如 gmail)不显示这种图像,但它可以在找到更好的解决方案之前先解决问题。BR,杰​​罗姆。

 

你好,

感谢您的建议。在阅读了很多关于电子邮件客户端对电子邮件中嵌入图像的支持(例如 Jérôme 的解决方案被 Outlook 阻止)之后,我认为最好的解决方案是实现我自己的电子邮件发件人提供商并将图像链接到附件(使用 CID)。

@Stian Thorgersen:我的理解是,我将不得不基于 FreemarkerEmailTemplateProvider 覆盖 EmailTemplateProvider(或者我可以从这个扩展吗?)以从 /attachments/ 等路径获取附件并将​​它们传递给 EmailSenderProvider,对吗? ?

问候乔纳森

因此,虽然文档说您可以<img src="${url.resourcesPath}/img/image.jpg">在自定义主题中使用,但这实际上不适用于电子邮件模板。


推荐阅读