邮件模板 API
EmailTemplates
接口有下列方法:
-
EmailInfo generateEmail(EmailTemplate emailTemplate, Collection<ReportWithParams> params)
使用模板创建EmailInfo
对象,模板可以包含同一个报表,但使用不同参数。 -
EmailInfo generateEmail(EmailTemplate emailTemplate, Map<String, Object> params)
使用参数映射创建EmailInfo
,使用所有报表。 -
void checkParameterTypeChanged(ReportInputParameter inputParameter, ParameterValue parameterValue)
确保报表输入参数的类型没有改变。
EmailTemplate
实体包含标题、正文和附件。以及,寄件人、收件人、抄送、密送地址。
ReportWithParams
是一个报表及其参数的包装器类。
ParameterValue
类提供参数的别名和类型的字符串表示形式。
ReportInputParameter
是 Jmix 报表 扩展组件中的类。
EmailInfo
是 Jmix 电子邮件 扩展组件中的类。
邮件模板 Builder
邮件模板 API 包含一个构建器,可以用于创建并填充 EmailTemplate
实体。
EmailTemplateBuilderImpl
是 EmailTemplateBuilder
的一个实现。提供设置和添加邮件模板属性的中间方法。还包含可以构建 EmailTemplate
或创建及发送 EmailInfo
的方法。
EmailTemplateBuilderImpl
类的对应 setter 会复制指定的 EmailTemplate
。每个中间方法都是填充这个复制的实体。
public void setEmailTemplate(EmailTemplate emailTemplate) {
this.emailTemplate = cloneTemplate(emailTemplate);
}
build()
方法会创建构建器内副本的副本。因此,有必要保存已经存在的实体和构建器的状态。
使用构建器的示例:
EmailTemplate newTemplate = emailTemplates.buildFromTemplate(CREATED_TEMPLATE_CODE)
.setSubject("Test subject")
.setTo("address@haulmont.com")
.setBodyParameter("subscription", subscription)
.setBodyParameter("customer", subscription.getCustomer())
.build();