Documentation ¶
Overview ¶
Package mailtmpl implements email template bundling and execution.
Package mailtmpl implements email template bundling and execution.
Index ¶
Constants ¶
const ( // FileExt is a file extension of template files. FileExt = ".template" // DefaultTemplateName of the default template. DefaultTemplateName = "default" )
Variables ¶
var Funcs = map[string]interface{}{ "time": func(ts *timestamp.Timestamp) time.Time { t, _ := ptypes.Timestamp(ts) return t }, "formatBuilderID": protoutil.FormatBuilderID, }
Funcs is functions available to email subject and body templates.
Functions ¶
func SplitTemplateFile ¶
SplitTemplateFile splits an email template file into subject and body. Does not validate their syntaxes. See notify.proto for file format.
Types ¶
type Bundle ¶
type Bundle struct { // Error found among templates. // If non-nil, GenerateEmail will generate error emails. Err error // contains filtered or unexported fields }
Bundle is a collection of email templates bundled together, so they can use each other.
func NewBundle ¶
NewBundle bundles templates together and makes them renderable. If templates do not have a template "default", bundles in one. May return a bundle with an non-nil Err.
func (*Bundle) GenerateEmail ¶
func (b *Bundle) GenerateEmail(templateName string, input *config.TemplateInput) (subject, body string)
GenerateEmail generates an email using the named template. If the template fails, an error template is used, which includes error details and a link to the definition of the failed template.
type Template ¶
type Template struct { // Name identifies the email template. It is unique within a bundle. Name string // SubjectTextTemplate is a text.Template of the email subject. // See Funcs for available functions. SubjectTextTemplate string // BodyHTMLTemplate is a html.Template of the email body. // See Funcs for available functions. BodyHTMLTemplate string // URL to the template definition. // Will be used in template error reports. DefinitionURL string }
Template is an email template. To render it, use NewBundle.