Keycloak Key斗篷-如何选择电子邮件验证模板发送电子邮件时使用Key斗篷';s管理RESTAPI?

Keycloak Key斗篷-如何选择电子邮件验证模板发送电子邮件时使用Key斗篷';s管理RESTAPI?,keycloak,Keycloak,我正在使用keydove的Admin restapi向用户发送验证电子邮件。具体而言,使用端点: admin/realms/{realmName}/users/{userId}/execute-actions-email?redirect_uri={redirectURI}&client_id={clientId} 电子邮件已成功发送,但Key斗篷选择的电子邮件模板是“更新您的帐户”模板,而不是“验证电子邮件”模板 有没有一种方法可以让Key斗篷使用正确的模板 更新: 也尝试使用发送验

我正在使用keydove的Admin restapi向用户发送验证电子邮件。具体而言,使用端点:

admin/realms/{realmName}/users/{userId}/execute-actions-email?redirect_uri={redirectURI}&client_id={clientId}
电子邮件已成功发送,但Key斗篷选择的电子邮件模板是“更新您的帐户”模板,而不是“验证电子邮件”模板

有没有一种方法可以让Key斗篷使用正确的模板

更新:
也尝试使用
发送验证电子邮件
端点。。同样的问题也存在。

我正在使用3.4.0版。如果使用execute actions端点,则不能直接选择模板。但您可以使用freemarker选择不同的内容。下面是一个
/email/html/executeActions.ftl

<#outputformat "plainText">    
<#assign requiredActionsValues><#if requiredActions??><#list requiredActions><#items as reqActionItem>${reqActionItem}}<#sep>, </#sep></#items></#list></#if></#assign>
</#outputformat>

<!DOCTYPE html>
<html>
<body>
Actions: '${requiredActionsValues}'<br>
Email: ${user.email}<br>
Username: ${user.username}<br>
</body>
</html>

${reqActionItem}},
操作:“${RequiredActionsValue}”
电子邮件:${user.Email}
用户名:${user.Username}

使用变量
requiredActionsValues
根据操作选择您的内容。

我扩展了Barny的答案,最后使用了此模板。 不知道为什么他们不称之为“bug”,而是限制

用于HTML

<#outputformat "plainText">
<#assign requiredActionsText><#if requiredActions??><#list requiredActions><#items as reqActionItem>${msg("requiredAction.${reqActionItem}")}<#sep>, </#sep></#items></#list></#if></#assign>
<#assign requiredActionsValues><#if requiredActions??><#list requiredActions><#items as reqActionItem>${reqActionItem}<#sep>, </#sep></#items></#list></#if></#assign>
</#outputformat>


<html>
<body>
<#if requiredActionsValues == "VERIFY_EMAIL">
${kcSanitize(msg("emailVerificationBodyHtml",link, linkExpiration, realmName, linkExpirationFormatter(linkExpiration)))?no_esc}
<#elseif requiredActionsValues == "UPDATE_PASSWORD">
${kcSanitize(msg("passwordResetBodyHtml",link, linkExpiration, realmName, linkExpirationFormatter(linkExpiration)))?no_esc}
<#else>
${kcSanitize(msg("executeActionsBodyHtml",link, linkExpiration, realmName, requiredActionsText, linkExpirationFormatter(linkExpiration)))?no_esc}
</#if>
</body>
</html>

你可以看一看和。这是keydape用来用变量填充电子邮件模板的代码。在上面的示例中,如何使用不同的邮件主题来执行不同的必需操作。
<#ftl output_format="plainText">
<#assign requiredActionsText><#if requiredActions??><#list requiredActions><#items as reqActionItem>${msg("requiredAction.${reqActionItem}")}<#sep>, </#sep></#items></#list><#else></#if></#assign>
<#assign requiredActionsValues><#if requiredActions??><#list requiredActions><#items as reqActionItem>${reqActionItem}<#sep>, </#sep></#items></#list></#if></#assign>


<#if requiredActionsValues == "VERIFY_EMAIL">
${msg("emailVerificationBody",link, linkExpiration, realmName, linkExpirationFormatter(linkExpiration))}
<#elseif requiredActionsValues == "UPDATE_PASSWORD">
${msg("passwordResetBody",link, linkExpiration, realmName, linkExpirationFormatter(linkExpiration))}
<#else>
${msg("executeActionsBody",link, linkExpiration, realmName, requiredActionsText, linkExpirationFormatter(linkExpiration))}
</#if>
sudo systemctl restart keycloak.service