在 FusionAuth 中管理电子邮件模板

Managing email templates in FusionAuth

我们正在将 FusionAuth 集成到 3 个 SaaS 应用程序的用户帐户/配置文件系统中。我们将建立大约 5 个角色,每个这样的用户的入职流程都不同。

新用户注册可以是全新的,可以是现有的但用于新角色,也可以是重新激活帐户。所以粗略地说,我们可能需要建立 3 x 5 x 2(新用户和回访用户)电子邮件用于帐户验证,然后是相同数量的欢迎电子邮件。每封电子邮件都将包含特定的说明文本、电子邮件主题和 links.

在 FusionAuth UI 中复制电子邮件模板的功能会很有用,但显然这不是一个完整的解决方案。如果我创建多个租户来支持我们的开发、测试和生产发布——那么能够维护版本化模板的主列表并link任何一个电子邮件模板版本到任何租户和应用程序真的很棒.

如果您熟悉 SendGrid - 那里的版本化模板非常好,可以在模板中使用条件逻辑来减少必须维护的文档总数。

为了我的理智和与这些电子邮件相关的维护负担,我只想对这些帐户维护电子邮件使用 FusionAuth 或 SendGrid。由于 SendGrid 是更强大的电子邮件解决方案,它可能是更好的选择。

FusionAuth 的用户操作可以完成什么?是否可以从 FusionAuthUI 和 API 禁用所有 FusionAuth 电子邮件模板?

从我们的 UI 添加用户需要创建(或返回)FusionAuth 用户、设置 FusionAuth 应用程序注册、设置角色,然后触发必要的电子邮件。

如果所有这些都可以配置为创建/更新和配置用户然后触发 SendGrid 模板电子邮件的多步用户操作,那将会非常酷。

电子邮件模板的版本控制和重复选项是个好主意。 FusionAuth 当前不支持电子邮件模板版本控制或 UI 中的复制/复制。您可以在 GitHub 中将这些作为功能请求打开吗? https://github.com/FusionAuth/fusionauth-issues/issues

我们在模板中支持条件逻辑。 FusionAuth 文档中有一个简短的教程。 https://fusionauth.io/docs/v1/tech/email-templates/email-templates

要构建条件逻辑,您基本上可以使用 FreeMarker 支持的任何东西。 https://freemarker.apache.org/

例如

[#if user.data.favoriteColor == "blue"]
  Hi ${user.firstName}, I see you like the color blue.
[#else]
  Hi ${user.firstName}, 
[/#if]

如果您有一些特殊的用例或需要一些帮助来构建模板中的逻辑,请随时在 FusionAuth Slack 频道中寻求帮助或在此处询问。

也就是说 - SendGrid 是电子邮件游戏中的一员,他们可能会拥有一些 FusionAuth 所没有的强大功能。如果您需要许多高级用户功能,我不会劝阻您使用 SendGrid。但是请打开功能请求,以便我们可以使我们的电子邮件模板尽可能有用。

What can be accomplished with FusionAuth's User Actions?

用户操作是一种自由形式的事件,将使用我们的 Webhook 配置发送。它们只能用于已存在于 FusionAuth 中的用户,因此它可能不适合您的用例。除了用户操作之外,您还可以启用 user.create 等事件 - 如果有帮助,您可以在 FusionAuth 中响应这些类型的事件。

Can all FusionAuth email templates can be disabled from the FusionAuthUI and API?

不确定您的意思 - 您可以禁用 SMTP 电子邮件配置,这会隐式禁用所有电子邮件的使用。这可以通过系统配置 API 完成。 https://fusionauth.io/docs/v1/tech/apis/system#update-the-system-configuration 参见 systemConfiguration.emailConfiguration.enabled。 FusionAuth 首先是 API,因此您可以在 API 中执行的所有操作都可以通过 API 执行。

It could be really cool if all that can be configured as a multistep User Action that creates / updates and configures the user and then triggers the SendGrid template email.

用户操作对此用例没有帮助。但是,您可以通过更少的 API 调用来完成此操作。如果您知道用户还不存在,您可以使用Combo API(创建用户+注册)一步创建并注册用户。 https://fusionauth.io/docs/v1/tech/apis/registrations#create-a-user-and-registration-combined

如果您省略此请求中的角色,将为用户分配在应用程序上配置的任何默认角色。

如果您启用注册验证,这将向用户发送一封您选择的电子邮件。这主要是为了验证打算注册该应用程序的用户。

自定义工作流的想法是一个很好的想法,但是,请随时在 GitHub 上提出问题。我将其设想为应用程序的工作流程构建器。

示例:

On user registration:
1. Assign role(s): [x] user
                   [ ] manager
                   [ ] admin

2. Send email: [select box for email template]