Hi, Jakob Borg Thanks for ypur reply to the post. The solution you have provided can not be implemented on my system. I have provided a small sample of my code structure. Please take a look
type EmailTemplate struct{ BookingDetails string } type EmailRequest struct{ EmailTo string EmailBody string } // get saved html with tokens from database notificationTemplate, errVal := merchantDb.GetNotificationTemplate() request := EmailRequest{ "t...@example.com", notificationTemplate.Content, } templateData.BookingDetails += "<p><span>Industry</span><span>"+industry.IndustryName+"</span></p>" request.EmailSend(templateData) func (request *EmailRequest) EmailSend(notificationTemplateData interface{}) (bool, error) { body, errParse := ParseTemplate(request.EmailBody, notificationTemplateData) //email sending code here } func ParseTemplate(templateHtml string, data interface{}) (string, error) { var body string t, err := template.New("my_template").Parse(templateHtml) if err != nil { return body, err } buf := new(bytes.Buffer) if err = t.Execute(buf, data); err != nil { return body, err } body = buf.String() return body, nil } Where templateHtml is the email body with tokens and data is the interface holding dynamic values for these tokens. When I use ParseTemplate function to parse tokens as string values then it works fine. But if I have to parse html in one of my tokens then it parses html as string and in email displays html as string. How ever If I try to make assertion on it from interface to template.HTML, it gives me error: cannot convert notificationTemplateData (type interface {}) to type "html/template".HTML: need type assertion On Friday, May 4, 2018 at 2:18:51 PM UTC+5:30, Jakob Borg wrote: > > Hi, > > Your post is a bit confusing and I think you may be using the word "parse" > in the opposite of it its common meaning. However, if you want to pass a > HTML fragment through a HTML template and have it not be escaped, look at > the template.HTML type: https://golang.org/pkg/html/template/#HTML > > //jb > > On 4 May 2018, at 10:42, Amandeep Kaur <amandeep...@gmail.com > <javascript:>> wrote: > > Hello, > > I am working on a SAAS based project for which I need to send emails to > different clients on different events. > > I am using email templates which use tokens (in format {{.TOKENNAME}}) > that are made dynamic while sending emails. Now these token are parsed by > using "html/template" package. > > following is the custom function that I have made to parse these tokens > into email body. > > func ParseTemplate(templateHtml string, data interface{}) (string, error) { > var body string > t, err := template.New("my_template").Parse(templateHtml) > if err != nil { > return body, err > } > buf := new(bytes.Buffer) > > if err = t.Execute(buf, data); err != nil { > return body, err > } > body = buf.String() > return body, nil > } > > Where templateHtml is the email body with tokens and data is the interface > holding dynamic values for these tokens. When I use ParseTemplate function > to parse tokens as string values then it works fine. But if I have to parse > html in one of my tokens then it parses html as string and in email > displays html as string. > > Can anybody tell me what should I do to parse html in ParseTemplate > function?? > > Thanks! > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts...@googlegroups.com <javascript:>. > For more options, visit https://groups.google.com/d/optout. > > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.